一维数组和字符数组

发布时间 2024-01-08 13:25:43作者: paopaotangzu

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.2-puts函数

  • puts函数类似于printf函数,用于输出标准输出。puts函数的格式如下:int puts(char *str);
  • 函数puts把str(字符串)写入stdout(标准输出)。puts函数执行成功时返回非负值。执行失败时返回EOF。
  • 相对于printf函数,puts只能用于输出字符串(存储于字符数组中),同时多打印一个换行符。例如,puts(c);会将数组c中存储的"how are you"字符串打印到屏幕上,同时打印换行。