1.一维数组
写一个函数用于打印数组中的每一个元素,注意数组在传递时,元素个数传递不过去,仅传递数组内存首地址,所以sizeof(a)/sizeof(int)
的值永远是1,无法算出数组元素真正的个数。
可以单步调试观察内存中变量值的变化。原理是编译器在编译时,只传递了数组的起始地址,故在子函数中可以直接修改数组元素值。
2.字符数组
2.1-用来存放字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char c[6] = {'h','e','l','l','o'}; //一个个字符定义比较麻烦
char d[5] = "how"; //字符数组就是用来存放字符串的
printf("%s---%s\n", c, d);
char e[20], f[20];
scanf("%s%s", e, f); //%s和%d、%f一样,scanf函数会自动忽略空格和\n
//所以%s%s不必要加空格,去匹配输入缓冲区的空格
//还有一点,数组在输入时不用像int型数据一样取地址
printf("%s---%s\n", e, f);
return 0;
}
2.2-gets函数
- gets函数类似于scanf函数,用于读取stdin(标准输入),而scanf函数在读取字符串时遇到空格就认为读取结束,所以当输入的字符串存在空格时,我们需要使用gets函数进行读取。格式如下:
char *gets(char *str);
- gets函数从stdin读取字符并把它们加载到str(字符串)中,直到遇到换行符(\n)或到达EOF。当gets遇到\n后,不会存储\n,而是将其翻译为空字符\0。
2.2-puts函数
- puts函数类似于printf函数,用于输出标准输出。puts函数的格式如下:
int puts(char *str);
。 - 函数puts把str(字符串)写入stdout(标准输出)。puts函数执行成功时返回非负值。执行失败时返回EOF。
- 相对于printf函数,puts只能用于输出字符串(存储于字符数组中),同时多打印一个换行符。例如,
puts(c);
会将数组c中存储的"how are you"
字符串打印到屏幕上,同时打印换行。