如何解决为什么 C 中的字符数组不需要元素说明符,但整数数组需要?
为什么 C 中的字符数组不需要元素说明符,而整数数组需要?
例如:
#include <stdio.h>
int main(void){
char array1[100];
int array2[100] = {1,2,3,4};
fgets(array1,100,stdin);
printf("%s",array1); // This prints the string inputted without a specifier
printf("%d ",array2); // This throws an error since there is no specifier
return 0;
}
解决方法
传递给函数 decay 的数组指向指针。 %s
格式说明符需要一个指向 char
的指针,这就是您要传递的内容,所以一切都很好。同样,在下一行中,您将指针传递给 int
,但 %d
需要实际的 int
,而不是指针。所以它不起作用。
根本区别在于 %d
用于打印单个整数,而 %s
用于打印整个字符数组(即字符串)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。