编写程序时为什么要在scanf后加_s
答案:2 悬赏:0 手机版
解决时间 2021-03-17 03:43
- 提问者网友:趣果有间
- 2021-03-16 13:41
编写程序时为什么要在scanf后加_s
最佳答案
- 五星知识达人网友:怙棘
- 2021-03-16 14:20
只有VS会让你在后面加_s吧。。
VS认为scanf不安全,读入字符串时可能造成数组越界,因此自己搞了个scanf_s函数。
VS认为scanf不安全,读入字符串时可能造成数组越界,因此自己搞了个scanf_s函数。
全部回答
- 1楼网友:封刀令
- 2021-03-16 15:27
scanf函数第二值必须是地址,这样编译器才知道把你输入的值赋值给谁。
int num;
scanf("%d", &num); //num是个变量,取地址了,编译器才知道你输入的值该赋值给谁。
char str[9] = "testing";
printf("str:[%c] str address:[%p] pstr:[%p]\n", *str, str, &(*str)); //看明白了这个你就理解了数组的含义。
scanf("%s", str); //str是一个字符数组,它本身就是字符串的首地址。既然是地址编译器就能识别。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯