学c语言,指针和数组是比较难的,尤其是数组指针和指针数组,在这里给大家分享一下笔记关于数组指针的。
1. 字符指针的定义
2. 字符串常量
字符串表示字符串中第一个字符的地址;
答案:h
:e
字符串常量中的值不能被更改:静态存储区
3. 数组名是数组第一个元素的首地址,只是c的一个抽象概念,方便编程操作;并没有给其分配内存空间,来保存地址 !!!!!可以理解为“动态的宏定义”
4. 理解以下的内存空间分配
Char * p=”hello”;
Char str[]=”hello”;理解
三个内存空间:
str; 6字节
p; 4字节
字符串常量(静态存储区)4字节
前2个在程序运行时分配,后面的在编译时进行分配。
5. Const(保护源操作数)
最后一个错误
6. 字符串的操作:条件‘\0’
7. 注意程序编写的健壮性。
8. 理解数组指针的类型
Int a; &a ==== int *
1.理解二维数组:
1.是1维数组,长度为行宽;
2.每个元素又是1个数组。长度为列宽。
每个元素又是列数组的数组名;
Char arr[3][4];
1. Arr[0],arr[1],arr[2]
2. Char Arr[0][4] arr[0]是数组名;
Char arr[1][4] arr[1]是数组名;
3. 注意类型;
Arr[0]=&arr[0][0]; char *
Arr[1]=&arr[1][0]; char *
Arr=&arr[0]; char * [4]
2. 理解1维数组
Char arr[2]; char (*p) [2];
P=&arr; char *[2];
Arr=&arr[0]; char *;
答案:6
插图理解:
9. 二维数组名传参
同一维数组一样以方便操作,同是指针。
形象表示:传递的是数组
函数里使用数组的方式对源数组操作。
注意传递数组名时的形参格式。