标签:
程序经过编译后将变量名转换成变量的地址,对变量的存取都是通过地址进行的。
(3)行数组指针
在上面的说明中我们已经知道,二维数组名是指向行的,它不能对如下说明的指针变量p直接赋值:
int a[3][4]={{10,11,12,13},{20,21,22,23},{30,31,32,33}},*p;
其原因就是p与a的对象性质不同,或者说二者不是同一级指针。C语言可以通过定义行数组指针的方法,使得一个指针变量与二维数组名具有相同的性质。行数组指针的定义方法如下:
数据类型 (*指针变量名)[二维数组列数];
例如,对上述a数组,行数组指针定义如下:
int (*p)[4];
数据类型 (*指针变量)[];
它表示,数组*p有4个int型元素,分别为(*p)[0]、(*p)[1]、(*p)[2]、(*p)[3] ,亦即p指向的是有4个int型元素的一维数组,即p为行指针
此时,可用如下方式对指针p赋值:
p=a;
1.用字符数组指向字符串和用字符指针指向的字符串的区别
如:char *str="OK"; 与 char a[]="OK";
例题一
例题二
标签:
原文地址:http://www.cnblogs.com/happygirl-zjj/p/4636045.html