前面写啦一个C语言的指针,发现有同学理解上还有些问题,不过问题你们可以给我留言或者简信。也很感谢给我提出一些意见和建议,感谢大家的关注与支持。
指针与二维数组
二维数组
int a[2][3];
1.任何一个二维数组都由若干个一维数组组成
2.二维数组名是一个地址常量,在二维数组中,a的值与a[0]相同,但是基本类型不相同。a等价于一个二维指针,而a[0]是一个一维指针。
错误赋值
int a[3][4] = {0},*p;
p=a;
简单的理解就是,p是(int*)类型,而a是一个(int**)类型的,因此赋值类型不一致
3.取数组元素 a[i][j] 的地址常用有3种方法
(1).&a[i][j] //简单粗暴
(2).a[i]+j //这个在上一篇也讲过指针的运算
(3).(a+i)+j //a[i]等价于(a+i) (*(a+i))[j] 这样也可以哟
指针数组与二维数组
1.定义指针数组
指针数组的定义形式:类型名 指针数组名[常量表达式];
说明:[]的优先级高于,因此p先与[]结合,构成p[3],说明p是一个数组名;在它前面的*号,则说明数组p中的每个元素只能存放指针。
int a[3][2] = {1,2,3,4,5,6},*p[3];
p[0] = a[1];
哈哈,每天更新一点点,这样更方便阅读吧,不要说我偷懒,