关于C语言指向指针数据的指针变量的例题理解

关于C语言指向指针数据的指针变量的例题理解:

这是第一次写,就是感觉这个例题挺好的,可以帮助辨析理解,自己就写一下每个语句的解释,也想和初学者们分享下,大家请多指正。

小白,想法不成熟,我认为一级的指针数组就是将不同的字符串的首地址存储到了指针变量中,而二级的指针就是将这些存放地址的指针变量的首地址再次存储在另一个指针变量里。

理解如下:

char *name[5];

char **p;

p=name+2;

printf("%d",*p);//p所指向的是name[2]的地址,*p意思为将其所指向的地址的具体值取出;

printf("%s",*p);//*p意思是name[2]所存储字符串的首地址,%s作用是将指针变量存储的首地址所指向的字符串整个输出,所以输出为Great Wall;

printf("%c",*(*p+6));//将name[2]的首地址的指针向后移动六个元素,即指针依次经历r、e、a、t、空格、W结束,将其‘W’输出;

printf("%d",name);//name实际上可以理解为二级指针,它相当于把二维指针数组所有字符串的首地址集合在一起,此语句将name的地址输出;

printf("%d",*name);//将name地址所指向的name[0]的地址打印出来;

printf("%c",**name);//将name地址指向的【name[0]首地址指向的】元素输出;

printf("%d",name[2]);//将name[2]存储的字符串首地址输出;

printf("%s",name[2]);//将name[2]存储的字符串首地址所指向的整个字符串全部输出;

printf("%c",*(name[2]+6));//将指向name[2]首元素的指针向所在字符串后方移动六个元素,即指针依次经历r、e、a、t、空格、W结束,将其‘W’输出; 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值