#include <stdio.h>
int main() {
char charArray[10]; // 字符数组,大小为10
char stringArray[10][100]; // 字符串数组,每个元素可以存储最多99个字符,最后一个位置留给字符串结束符'\0'
int intArray[10]; // 整数数组,大小为10
printf("Enter 10 characters:\n");
for (int i = 0; i < 10; i++) {
scanf(" %c", &charArray[i]); // 使用%c格式化字符串输入一个字符,并将其存储到charArray[i]位置
}
printf("Enter 10 strings:\n");
for (int i = 0; i < 10; i++) {
scanf("%s", stringArray[i]); // 使用%s格式化字符串输入一个字符串,并将其存储到stringArray[i]位置
}
printf("Enter 10 integers:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &intArray[i]); // 使用%d格式化字符串输入一个整数,并将其存储到intArray[i]位置
}
printf("Characters you entered: ");
for (int i = 0; i < 10; i++) {
printf("%c ", charArray[i]); // 打印出输入的字符数组中的每个字符
}
printf("\n");
printf("Strings you entered: ");
for (int i = 0; i < 10; i++) {
printf("%s ", stringArray[i]); // 打印出输入的字符串数组中的每个字符串
}
printf("\n");
printf("Integers you entered: ");
for (int i = 0; i < 10; i++) {
printf("%d ", intArray[i]); // 打印出输入的整数数组中的每个整数
}
printf("\n");
return 0;
}
对于数组来说,它是由多个连续的元素组成的,每个元素占据一定的内存空间。因此,我们需要使用取地址运算符&
来显式地获取数组中每个元素的地址,以便scanf
函数可以将输入值正确地保存到数组的相应位置。
而数组名作为地址本身代表了整个数组的首地址,在某种程度上可以看作是指向数组的指针。而输入字符串仅需要首地址就可以,所以输入字符串时参数不用取地址符,而输入整数数组,字符数组需要取地址符以便将他们一一对应。