黑马程序员-[C语言字符串和数组]学习日记(三)

来源:互联网 发布:谁有网络高手黑客的q 编辑:程序博客网 时间:2024/04/30 19:27

字符串:

初始化: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类型的数组元素所占用的字节数。

 数组名做参数

数组名做实参时,形参也必须是相同类型的数组。

数组名做实参传递到形参时。实参与形参之间不是值传递而是地址传递。实参数组名将该数组的起始地址传递到形参数组。切实参与形参数组地址指向同一地址空间。

数组元素作实参传递到形参时,实参与形参之间是值传递。

0 0
原创粉丝点击