关于二级指针的理解

#include<stdio.h>

void main()
{
char n[]={“fish”,“www.fish.comui”,“home.fishc”,“fu”,“thank”};
char p;
int i;
for(i=0;i<4;i++)
{
p=n+i;
printf("%s\n",p);
}
}
首先我们要明白,如果定义一个字符串数组a[4],其实就是一个一级指针,放的是第一个字符的首地址,a+1放的就是第二个字符的首地址。
这个也不难理解,同理我们知道
n[]是一个二维指针n里面放的是a[0]的地址,a[0]放的是第一个字符串里面第一个字符的首地址。而经过我的调试,我也发现n+i放的就是n[i]的地址,这个应该容易理解。
所以我们要定义一个
p来接受,输出的时候我们要注意一定要输出
p,因为这个是n[i]的,而里面放的就是这段字符的首个字符的地址,用%s输出就正确了。
新手,写博客为了见证自己的成长,也为了督促自己,有不对的地方,希望大家多多指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值