int main();
Đây là tuyên bố đơn giản. Nó không thể lấy bất kỳ đối số dòng lệnh nào.
int main(int argc, char* argv[]);
Tuyên bố này được sử dụng khi chương trình của bạn phải có đối số dòng lệnh. Khi chạy như ví dụ:
myprogram arg1 arg2 arg3
argc
, hoặc Đếm Đối số, sẽ được thiết lập đến 4 (bốn đối số), và argv
, hoặc Vectors Đối số, sẽ được áp dụng với con trỏ chuỗi để "myprogram", "arg1", "arg2" và "arg3". Gọi chương trình (myprogram
) được bao gồm trong các đối số!
Ngoài ra, bạn có thể sử dụng:
int main(int argc, char** argv);
Đây cũng là hợp lệ.
Có một tham số bạn có thể thêm:
int main (int argc, char *argv[], char *envp[])
Tham số envp
cũng chứa các biến môi trường. Mỗi mục sau định dạng này:
VARIABLENAME=VariableValue
như thế này:
SHELL=/bin/bash
Môi trường danh sách các biến là null-chấm dứt.
Nguồn
2018-01-14 19:33:00
Nếu chương trình của bạn sẽ bỏ qua đối số dòng lệnh, thì những gì bạn viết là tốt. Nếu chương trình của bạn cần xử lý các đối số dòng lệnh, thì IDE đang làm đúng. –
Một gợi ý cho tin tặc: thử khai báo 'int main (int argc, char * argv [], char * envp [])' và in ra đối số cuối cùng. ';)' – ulidtko
@ulidtko nó không phải là tốt mà bạn đang dạy người mới để giới thiệu tính dễ bị tổn thương trong các chương trình của họ;) –