数组作为scanf的函数参数.地址操作符
发布时间:2020-12-16 10:11:08 所属栏目:百科 来源:网络整理
导读:#include stdio.hint main(void){ char s[32];example_1: scanf("%s",s); printf("%sn",s);example_2: scanf("%s",s[0]); printf("%sn",s);example_3: scanf("%s",s); printf("%sn",s);} 为什么#3与其他2的工作方式相同? #3有效吗?为什么? 解决方法 变
#include <stdio.h> int main(void) { char s[32]; example_1: scanf("%s",s); printf("%sn",s); example_2: scanf("%s",&s[0]); printf("%sn",s); example_3: scanf("%s",&s); printf("%sn",s); } >为什么#3与其他2的工作方式相同? 解决方法
>变体1取决于
array decay,因此是有效的.
(在大多数情况下,数组衰减指向它们的第一个元素,例外是:地址 – (& s),sizeof s,_Alignas(s)和_Alignof(s).) 似乎工作是UB中最危险的子集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |