【发布时间】:2023-03-14 22:41:01
【问题描述】:
我遇到了这段代码:
char str[600];
scanf("%s", &str);
当然,这会发出以下警告:
a.c:6:17: warning: format specifies type 'char *' but the argument has type
'char (*)[600]' [-Wformat]
scanf("%s", &str);
~~ ^~~~~~~
我知道正确的方法是删除& 并改为输入scanf("%s", str)。但它确实有效,所以我的问题是这是否会导致任何问题。它是未定义的行为吗?当我将str 切换为指针而不是数组时,它(显然)不起作用。但这会在使用数组时引起任何问题吗?
【问题讨论】: