一维数组和字符数组

1.一维数组

写一个函数用于打印数组中的每一个元素,注意数组在传递时,元素个数传递不过去,仅传递数组内存首地址,所以sizeof(a)/sizeof(int)的值永远是1,无法算出数组元素真正的个数。
vs_3
可以单步调试观察内存中变量值的变化。原理是编译器在编译时,只传递了数组的起始地址,故在子函数中可以直接修改数组元素值。

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'放到字符数组中。
posted @   paopaotangzu  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示