完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
#define SIZE 10
int arry[SIZE]={0,1,2,3,4,5,6,7,8,9}; //数组名arry表示数组首元素的地址 *int p,temp; //可直接初始化定义指针:int *p=arry; //通俗理解就是对指针进行初始化,将指针p指向数组首元素地址,这一地址中存放着一个int类型的数值 p=arry; //将数组首原始地址赋予指针p,==&arry[0] arry+1; //表示地址加4个字节,即指下一个数组元素arry[1]地址,即&arry[1] p+1; //等效arry+1 *p==arry==(&arry[0]); //*表示解引用,*p==arry[0],即指向存放在&arry[0]上的值 *p+1==arry+1==(&arry[0])+1 //表示arry[0]+1,*的优先级大于+ (p+1)==(arry+1)==(&arry[1])* //表示arry[1],数组首元素地址(&arry[0])加4个字节指向下一个元素的地址,对其接引用 temp=*p++; //表示先对p的接引用的值(arry[0])赋值给temp,后p地址自增再对其解引用(arry[1])赋值给temp *函数中的指针: double show_arry(int arry[])==double show_arry(int p) 调用这个函数方式:show_arry(arry); 指针表示法和数组表示法是等同的: p[0]=arry[0]=0; p[5]=arry[5]=5; 指针与多维数组: int arry[4][2]={{1,2},{3,4},{5,6},{7,8}}; //二维数组是由4个一维数组组成的,其中一个一维数组包含2个int类型元素 int *p; arry //arry表示的是二维数组中的首元素(也就是第一个一维数组,其中包含两个元素)地址(&arry[0]),也就是说arry包含两个int类型元素;准确的说就是arry与&arry0是相等的,可以把arry理解为二维数组的数组名 arry[0] //arry[0]表示第一个一维数组首元素的地址(&arry[0][0]),可以把arry[0]理解为第一个一维数组的数组名 //之所以说arry的值与arry[0]的值相等是因为两个首元素地址都是&arry[0][0],都是从这个开始所以两者的值是相等的 arry[0]==&arry[0][0] //arry[0]是一维数组的数组名,一维数组首元素的地址 *arryarry[0]&arry[0][0] //arry表示(&arry[0]) **arry==arry[0]==(&arry[0][0])==arry[0][0] //arry是指向arry[0]的地址(&arry[0]),其中存放的是arry[0],*arry指向arry[0][0]的地址(&arry[0][0],**arry是对arry[0]的解引用等于arry[0][0]) //特别要注意理解arry、arry[0]、&arry[0][0]之间的关系 arry==&arry[0],但是arry的值和arry[0]是相等的因为都是从同一个地址开始的,其中arry[0]&arry[0][0],*arryarry[0],**arry==arry[0][0]。 arry+1和arry[0]+1不一样,其中arry+1是表示增加2个int,arry[0]是表示增加1个int; arry+1 //表示的是第二个一维数组首元素(arry[1])的地址(&arry[1]) arry[0]+1 //表示的是第一个一维数组首元素地址加1指向第二元素地址(&arry[0][1]) *arry+1=arry[0]+1==&arry[0][1] 指针与多维数组: int (p)[2] //表示一个p指向一个内含两个int类型值的数组,其中[]的优先级大于所以加() pz=arry; 指针表示法与数组表示法关系*((p+2)+1)=p[2][1]=6 arry[m][n]==((arry+m)+n) p[m][n]==(*(p+m)+n); //可用数组or指针表示 int **pz //表示指向指针的指针,它指向的指针指向int。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:04 , Processed in 1.108001 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号