前言
编程语言学起来就像是一片大海,太多的知识点需要知道、理解、学习,今天分享两个小知识。
一、以下代码有什么问题
int main()
{
char szstr[10];
strcpy(szstr, "0123456789");
}
(1)问题解答
1)首先的问题就是越界,数组szstr只有10个空间,而数字字符0~9也是10个空间,还有一点要注意的是\0占了一个空间,这样数组的空间就不够了。
2)高级编译器不让使用strcpy,认为它是不安全的,;例如VS等等,而按照提示更改时就会发现编译器建议用strcpy_s,其中有三个参数,第二个就是拷贝的数目,那么这样就能有效避免越界问题,如果所填数字多过了数组的容量也不会编译通过。
二、main函数为什么返回1?
int main()
{
int x=3;
printf("%d",x);
return 1;
}
(1)问题解答
在C标准中,认为0表示成功,非0是失败,这里返回的值会给我们一个提示信息,看看代码是否是正常退出。所以在主函数中,我们习惯写return 0,来表示代码正常退出,显示其他的都是不正常退出,代码存在问题。
总结
以上就是今天想和大家分享的,虽然是比较小的点,但是不积跬步,无以至千里,加油吧!