问题描述
正在使用main
函数,其形式为:
int main(int argc,const char* argv[])
非便携式和非标准? C ++标准说argv
是“ 指向char的指针的指针”。我更喜欢使用单词const
来防止在我不知道的内存区域中进行修改和越界。
这种形式是错误的且不可移植吗?
解决方法
您的版本确实不可移植。
标准允许的变体是
int main()
int main(int argc,char* argv[])
int main(int argc,char** argv)
该标准允许实现定义的可能性,因此在某些平台上可能允许const
。但是,如果实现中没有定义这种替代方法,则程序的行为是不确定的。