Tại sao được argv
khai báo là "con trỏ trỏ đến chỉ mục đầu tiên của mảng", thay vì chỉ là "con trỏ tới chỉ mục đầu tiên của mảng" ( char* argv
)?
Tại sao khái niệm "con trỏ đến con trỏ" được yêu cầu ở đây?
char* argv[]
đặt không gian sai vị trí Nói char *argv[]
, và bây giờ rõ ràng điều này có nghĩa là "biểu thức *argv[n]
là một biến loại char
". Đừng để bị cuốn vào việc cố gắng tìm ra con trỏ là gì và con trỏ của con trỏ là gì, v.v. Tuyên bố là cho bạn biết những hoạt động bạn có thể thực hiện trên điều này.
char * argv[]
với cấu trúc C ++ tương tự std::string argv[]
, và có thể dễ dàng phân tích cú pháp hơn. ... Đừng bắt đầu thực sự viết nó theo cách đó!
char &func(int);
không &func(5)
có loại nào char
.
char* argv[]
hoặcchar**
. Đó là một con trỏ tới một con trỏ tới một ký tự; cụ thể là con trỏ bên ngoài trỏ đến con trỏ đầu tiên trong một mảng và các con trỏ bên trong trỏ đến các ký tự đầu tiên của các chuỗi kết thúc nul. Không có chỉ số liên quan ở đây.