字符串:
初始化:char a[] = "ning";
由‘n','i','n', 'g','\0'组成字符串输出 %s ’\0‘是不会输出的
char a[] = {'1','2'};
处理函数:strlen 和sizeof
strlen 函数:计算字符串长度
计算字符数,而不是字数。一个汉字做3个字符
计算字符不包括\0
sizeof 指变量在内存中的大小
初始化:
char names[2][10] = { {'J','a','y','\0'}, {'J','i','m','\0'} };
char names2[2][10] = { {"Jay"}, {"Jim"} };
char names3[2][10] = { "Jay", "Jim" };
数组:一组具有相同数据类型的数据的有序的集合。
数组元素:构成数组的数据。
数组的下标:是数组元素的位置的一个索引指示。
初始化方式:
int a[3] = {10, 9, 6};
int a[3] = {10,9};//这种初始化方式没有定义的元素默认为0
int a[] = {11, 7, 6};
int a[4] = {[1]=11,[0] = 7};
内存分析:
数组存储空间的大小
存储空间的划分地址从高地址到地地址进行的,但一个数组内部元素又是从低到高的
数组名的作用,查看元素的地址
数组越界注意
数组作为参数
数组元素作为实参使用
数组名作为函数的形参或实参使用
一维数组
定义:数组的每个元素都不是一个数组
格式:类型说明符 数组名 [数组长度]例:int a[3]
遍历数组元素:
两种方式遍历(while循环和for循环)
遍历元素值和元素地址
字符数组的使用
6) Int 表示的是数组用来存放int类型的数据 不要理解成a是int类型
注意:
数组的长度可以是一个常量,也可以是常量表达式
数组名的命名规则严格按照标识符的命名规范
数组名不能和其他变量同名
数组的长度不可以是一个变量
数组的长度可以使用宏定义 例 #define m 3 int a[m]
数组的初始化方法:
定义的同时进行初始化
定义的同时进行全部初始化
定义的同时进行部分的初始化未初始化部分被系统初始化为零
先定义,后初始化
注意:如果使用先定义后初始化的方式,如果部分数组元素被初始化,系统不会对没有定义的数组元素进行赋值为零。
数组长度的计算
Int a[5];
int len=sizeof(a); 表示数组a所占用的总字节数。
则len=5*sizeof(a[0]);
Sizeof(a[0])表示每个int类型的数组元素所占用的字节数。
数组名做参数
数组名做实参时,形参也必须是相同类型的数组。
数组名做实参传递到形参时。实参与形参之间不是值传递而是地址传递。实参数组名将该数组的起始地址传递到形参数组。切实参与形参数组地址指向同一地址空间。
数组元素作实参传递到形参时,实参与形参之间是值传递。