【c/c++数组】复习数组操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/80675907

一维数组赋值( a[10]

直接赋值: a[10]={1,2,3,...,9};

不赋初值:随机值或0

全赋同一初值:a[10] = {0};  //或者更推荐用memset函数

memset函数:memset(数组名,值,sizeof(数组名));//如:memset(a , 0 , sizeof(a))

二维数组(int a[5][6] 

直接赋值:a[5][6] = {{},{},{},{},{},{}};

如果数组大小较大(10^6)需将其定义在主函数main()外面,原因是函数内部申请的局部变量来自系统栈,允许申请的空间较小;而全局变量来自静态存储区,允许申请的空间较大。

字符数组(char数组一维时)

//char数组二维时可看作是字符串数组,即多个字符串;

末尾有一个空字符\0(NULL,ASCII码为0)表示存放的字符串结尾(在用gets或scanf输入字符串时自动在字符串末尾添加,占用一个字符位),如果用scanf的%s或gets输入字符串(如用getchar),结尾一定要加入\0,否则printf和puts输出会出现乱码

分别赋值:char str[15] = {'a',.....,};

直接赋值(仅限初始化):char str[15] = “bad story”;

scanf输入:%c 能够识别空格跟换行并将其输入

                 %s 通过空格跟换行来识别一个字符串的结束,(输入时数组名前不需要取地址符

getchar()/putchar():单个字符的输入输出,getchar()常用来把每行末尾的换行符吸收掉

gets()/puts(): 用来输入/出一行字符串,gets识别换行符\n作为输入结束,如果用scanf输入完后使用gets,要使用getchat()吸收掉换行符后再使用gets














猜你喜欢

转载自blog.csdn.net/maotianyi941005/article/details/80675907