C/C++学习笔记:一维数组与字符数组

By AverageJoeWang
 标签:

一.一维数组的声明与初始化

1.1.一维数组的声明

声明的时候必须包含以下几点:

  • 存储在每个元素中的值的类型
  • 数组名
  • 数组元素数目
int a[2] = {1,2};
int b[10];//合法
int c[] = {2,3,4,5};//4个元素

数组定义中类型不能引用,即没有引用数组,因为引用不能赋值。
没有引用数组,但数组可以引用

int &a[10];//定义错误,没有引用数组
int b[6] = {0,2,4,6,8,10};
int (&p)[6] = b;//正确,定义数组b的引用

1.2.初始化

int x[4] = {0};//全部初始化为0
int y[4] = {1};//初始化为1,0,0,0
int a[] = {1,2,4,3};//个数为4

二.字符数组

2.1.字符数组初始化

  • 字符数组可以用一组由花括号括起来,逗号隔开的字符常量进行初始化
  • 也可以用一个常量字符串进行初始化
//第一种方式
char a1[] = {'c', 'd', 's'};//末尾没有null字符
char a2[] = {'c', 'd', 's',‘、0’};//末尾有null字符
//第二种方式
char b1[] = "cds";//末尾自动添加null字符

2.2.字符数组相关问题

  • 判断下列x与y字符数组是否相等
char x[] = "abcdef";
char y[] = {'a','b','c','d','e','f'};
//x与y不相等,x末尾有null字符,y没有,x要比y长度+1
  • 给出下列结果
char ca[5] = {'a','b','\0','c','\0'};
printf("%s",ca);
//结果为ab