标签:
首先看如下一下基础:
一、int *p:p是指向一个整数变量的指针
char *p:p是指向一个字符变量的指针
由int data[30]; int *p;有p=data;或p=&datd[1](i=0,1,2,3....)
上面成立的原因:(1)数组名是该数组首元素的地址
(2)&data表示取整个数组的地址,包括多维数组。&data[0]取数组首个元素的地址。单独data则亦表示数 组首元素的地址。
(3)p是p是指向一个整数变量的指针
二、 int a[3][4];a是指向由4个int数据构成的数组的指针
int (*p)[4];p是指向由4个int数据构成的数组的指针
于是必然有:p=a;
分析二成立的原因:1、c primer plus中对二维数组和数组指针的定义即是上面的方式;
2、因为在数组与指针中有p[m]=*(p+m)的关系。直接将上面的数组指针int (*p)[4];改写
成int (*p+0)[4];即等效于int p[0][4];自然可以很清晰的理解了。
三、字符的存储形式:每个字符以整数的形式储存。
字符串的储存方式:一“\0”结尾的char数组。
标签:
原文地址:http://www.cnblogs.com/wgang171412/p/5125348.html