Giáo sư của tôi và một vài sinh viên đang tranh luận về việc liệu argv
có bị chấm dứt hay không. Bạn tôi đã viết một chương trình nhỏ và nó in ra null
nhưng một đứa trẻ khác nói rằng anh ấy có lẽ chỉ đơn giản là đọc vào bộ nhớ trống. Ai đó có thể giải quyết cuộc thảo luận này?argv [argc] ==?
Trả lời
Từ Tiêu chuẩn:
5.1.2.2.1 Chương trình khởi động
...
- argv [argc] sẽ là một con trỏ null.
Vì vậy, có; argv is null terminated
Theo tiêu chuẩn, "argv [argc] phải là một con trỏ rỗng" (5.1.2.2.1).
Tại sao và nó trở thành tiêu chuẩn như thế nào? Bất kỳ ý tưởng? – Reigel
@Reigel: Trang người dùng cho 'exec' từ năm 1979 (http://plan9.bell-labs.com/7thEdMan/v7vol1.pdf) cho thấy rằng điều này có trước tiêu chuẩn một chút và chứa một gợi ý có thể có về tại sao nó theo cách này: "Argv là trực tiếp có thể sử dụng trong một execv khác bởi vì argv [argc] là 0." – bk1e
- 1. Là argv [argc] bằng NULL Pointer
- 2. Sử dụng argc và argv trong Eclipse?
- 3. Làm thế nào để sử dụng iOS argc và argv?
- 4. int argc, char * argv [] có nghĩa là gì?
- 5. argc biến Undefined PHP
- 6. Objective-c thói quen chính, những gì là: int argc, const char * argv []
- 7. một con trỏ về * argv []
- 8. $ argv trong một lớp
- 9. Có thể sử dụng Unicode "argv" không?
- 10. Đặt biến chuỗi trong C từ argv [1]
- 11. So sánh tham số lệnh với argv [] không hoạt động
- 12. Argv - Chuỗi thành số nguyên
- 13. char * const argv [] là gì?
- 14. Xử lý `argv` trong chương trình dòng lệnh C
- 15. Con trỏ trỏ tới con trỏ với argv
- 16. thực hiện một quá trình với argc = 0
- 17. Cách tìm độ dài của argv [] trong C
- 18. Tại sao phải kiểm tra xem (* argv == NULL)?
- 19. Cài đặt argv [0] trong Haskell?
- 20. Có gì sai khi viết "@ARGV || = '.';"?
- 21. Các đối số char * argv [] trong null chính có bị chấm dứt không?
- 22. Tại sao Perl là $. và $ ARGV hoạt động lạ sau khi cài đặt @ARGV và sử dụng <>
- 23. Làm thế nào tôi có thể nhận được argv [] như int?
- 24. Làm thế nào để viết phạm vi dựa trên vòng lặp với Argv?
- 25. Đầu ra khác nhau giữa các chuỗi argv và mảng thông thường
- 26. @ARGV trống khi sử dụng ActivePerl trong Windows 7
- 27. Sử dụng cả ARGV và CGI trong tập lệnh Perl
- 28. Can argv [0] có chứa một chuỗi rỗng không?
- 29. Chiều dài tối đa của các tham số ** argv
- 30. Làm thế nào để bạn truy cập ARGV trong Mathematica?
Nó không rõ ràng hơn thế nữa;) – caf
Chà, tôi không biết điều đó. Tại sao sau đó các argc anyway? –
Tôi không biết ** tại sao **. Nhưng nó làm cho việc viết một số chương trình dễ dàng hơn một chút bằng cách tránh phải đi bộ mảng 'argv' chỉ để đếm các đối số. – pmg