① c语言中char类型数组的输出问题--输出时为何需要&符
在C语言中数组的名字即数组的起始地址,也是数组第一个元素的地址。因此,假设有一个char类型的数组a表示成如下代码:
char a[20];
那么a表示字符数组的起始地址,它和&a[0]是一个意思。
使用printf()输出字符数组a的内容:
printf("%s ", a);
就等同于printf("%s ", &a[0]);
输出的时候用:
int i = 0;
for (i=0; i<10; i++) {
printf("a[%d]=%c ", i, a[i]);
}
防止缓冲区溢出可以用这样的:
fgets(a, sizeof(a), stdin);
a[strlen(a) - 1] = '