一维数组和字符数组
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.3-puts函数
- puts函数类似于printf函数,用于输出标准输出。puts函数的格式如下:
int puts(char *str);
。 - 函数puts把str(字符串)写入stdout(标准输出)。puts函数执行成功时返回非负值。执行失败时返回EOF。
- 相对于printf函数,puts只能用于输出字符串(存储于字符数组中),同时多打印一个换行符。例如,
puts(c);
会将数组c中存储的"how are you"
字符串打印到屏幕上,同时打印换行。
2.4-fgets函数
char c[100]; fgets(c, sizeof(c), stdin);
,其中,第二个参数是给出字符数组c的长度。fgets和gets函数作用相同,只是在C11标准中删掉了gets函数,所以此时可用fgets函数读取带空格的字符串,并且注意到fgets相对于gets去读取标准输入时,会把'\n'放到字符数组中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人