2012-01-24 35 views
8

Tôi là một lập trình viên trung bình trong C++, và thường tránh các con trỏ bằng mọi giá. Nhưng gần đây tôi đã bắt đầu sử dụng một số API, đó chỉ là đầy đủ các API. Và trung thực, chúng dường như hoạt động tốt hơn rất nhiều, nếu tôi chỉ tiếp tục một con đường tương tự, như ý định/ngụ ý của tác giả của API.Trong C++, có phải con trỏ như tham chiếu ô trong Bảng tính Excel không?

Trong biểu mẫu và chức năng, nhưng rõ ràng không phải là cú pháp - Có thể "Con trỏ" được xem như là "thậm chí hơi", tương tự như "Tham chiếu ô" trong Microsoft Excel?

Tôi có nhiều năm kinh nghiệm với Microsoft Excel w/VB. Tôi cũng thuộc loại "Công thức/Tài liệu tham khảo Junkie", khi nói đến việc sử dụng Excel, vì vậy dòng suy nghĩ này có ý nghĩa với tôi. Tôi chỉ muốn biết nếu tôi là "Chỉ" đúng hướng.

Cảm ơn bạn!

+2

Tôi rất tiếc phải nói rằng nếu bạn nhầm lẫn về con trỏ, bạn không phải là lập trình viên * trung bình * C++. Nhưng hãy theo kịp! C++ là một ngôn ngữ tuyệt vời mà sẽ dạy cho bạn rất nhiều về khoa học máy tính. – log0

+1

@Ugo - Có thể viết mã hữu ích và hiệu quả trong C++, mà không bao giờ sử dụng một con trỏ đơn. Nó cũng có thể để tâm trí kinh doanh của riêng bạn, nếu bạn không có bất cứ điều gì có ý nghĩa để chia sẻ. – tahwos

Trả lời

9

Tham chiếu ô trong Excel là một chuỗi cho biết vị trí nhất định trong sổ làm việc (hoặc trong một số trường hợp nhất định, một sổ làm việc khác).

Con trỏ trong C++ là địa chỉ bộ nhớ . Địa chỉ bộ nhớ là một số (không có gì hơn nữa!) Đặt một vị trí nhất định trong RAM ảo.

Vì vậy, có, chúng thực sự khá giống nhau. Tôi đã chuẩn bị để mưa trên cuộc diễu hành của bạn bằng cách nói về hai khác nhau như thế nào. Nhưng các công trình tương tự.

Khi bạn "dereference" một con trỏ, bạn sẽ đi đến vị trí trong bộ nhớ mà nó chỉ ra. Trong Excel bạn không thực sự "dereference" tham chiếu ô. Nhưng đủ gần.

Khi bạn nói int y = 4; int* x = &y;, đó là loại giống như việc tạo một ô tại B1 chứa "4", và sau đó ô khác có chứa "= B1".

+0

Câu cuối cùng trong câu trả lời của bạn, là điều khiến tôi suy nghĩ theo cách này ngay từ đầu - bởi vì tôi làm điều đó ("= B1") mọi lúc. Câu thứ hai trong câu trả lời của bạn, là loại "định hướng của tôi" đã nhắc câu hỏi của tôi - Tham chiếu ô trong Excel, là một số "và chữ cái" (không có gì khác), định vị một vị trí nhất định trong trang tính. << có sự tương đồng của tôi. Tôi thích câu trả lời của bạn, Cảm ơn! – tahwos

+0

Xem xét tham chiếu ô tham chiếu có tên. Trong mã Excel, rất có thể một hàm chuyển đổi nó thành tham chiếu ô thực tế, chữ ký có thể có: 'Cell * locateRef (char const * ref)'. Tham chiếu có tên này nằm trong miền bảng tính, trong khi tham chiếu con trỏ nằm trong miền bộ nhớ, nhưng cả hai tham chiếu đến cùng một thứ. –

+0

@ edA-qa mort-ora-y, tôi không có ý nghĩa như vậy theo nghĩa đen, nhưng cảm ơn cho đầu vào. – tahwos

0

Tôi nghĩ đó là sự tương tự hợp lý.

0

Con trỏ không là gì ngoài địa chỉ của bộ nhớ chứa thứ gì đó (hoặc không có gì).

Bất kể ô có chứa bất kỳ dữ liệu nào hay không, đó là địa chỉ, có thể được coi là một con trỏ tới ô.

Lưu ý rằng chính ô đó không phải là một con trỏ.

1

Có một số điểm tương tự mà bạn cần lưu ý, nhưng, một cách cổ điển khi tôi học lập trình máy tính đầu tiên là hộp thư trong phòng thư. Hãy tưởng tượng các hộp thư có nhãn, Tom, Dick và Harry.

  • Trong hộp thư của Tom, đặt một phong bì nói rằng có một đầu mối trong hộp thư Dick
  • Trong hộp thư của Dick, đặt một phong bì nói rằng kho báu là trong hộp thư của Harry
  • Trong hộp thư của Harry , bạn đặt $ 100 đô la! Yippee!

Trong lập trình máy tính, Tom, Dick và Harry là tất cả địa chỉ bộ nhớ. Hai con trỏ đầu tiên chứa con trỏ, thứ ba, chứa một giá trị số. Mở phong bì trong hộp thư của Tom hoặc Dick giống như con trỏ dereferencing.

Chúng tôi viết những dòng này:

int harry = 100; 
int *dick = &harry; 
int **tom = &dick; 

Vì vậy, ** tom == * tinh ranh == harry == 100. Trong khi Tom là một con trỏ đến một con trỏ đến harry. Và tinh ranh là một con trỏ để quấy rối.

0

Không, không thực sự. Con trỏ có thể được lập chỉ mục, và chúng cũng có thể không hợp lệ, và tôi tin rằng không phải những điều đó là đúng đối với các ô Excel.

+0

Cả hai đều đúng trong Excel. Bạn có thể lập chỉ mục một dải ô hoặc thậm chí là nội dung của một ô. Tham chiếu ô không hợp lệ được hiển thị dưới dạng lỗi - #VALUE !, #DATA !, v.v. – tahwos

Các vấn đề liên quan