以简单的例子说明数组指针和指针数组

以简单的例子说明指针数组

必须理解的是:

1.指针数组是数组,只不过数组里是指针型变量,一般用于字符串数组;

char *name[3]={"abc","def","ghi"};

2. 数组名就是数组的首元素地址;例如定义char name[3];

那么*name 和 name[0]相等;

先说指针数组,程序如下:

int main()
{
    char *name[3]={"abc","def","ghi"};
    for (int i = 0; i < 3; ++i) {
        printf("%s\t",*(name+i));   //(1)
        printf("%s\t",name[i]);		//(2)
        printf("%c\t",*(name[i]));  //(3)
        printf("%c\t",**(name+i));	//(4)
        printf("%c\t",*(*(name)+i));//(5)
        printf("%c\t",*(name[0]+i));//(6)
    }
    return 0;
}

char *name[3]={“abc”,“def”,“ghi”};表示这是个包含三个元素的数组,只不过元素为指针型,分别为name[0],name[1],name[2],他们都是地址,所以 name[i]和 *(name+i)就表示字符串 “abc”,“def”,“ghi”;这也是(1),(2)打印的结果;

既然name[0],name[1],name[2]是地址,那么 *name[i]和 **(name+i)就表示每个字符串的第一个元素,所以 (3),(4) 打印的是数组中每个字符串的第一个字母;即 a d g;

因为name[i]和 (name+i)就表示字符串 “abc”,“def”,“ghi”,将i取值为0;即name[0]和name都表示字符串“abc”;那么*(*(name)+i)) 和 *(name[0]+i)分别表示字符串“abc”里的每个字符,也就是 a b c;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值