多级指针及数组

#include <stdio.h>
#include <string.h>

int main()
{
    // char p[] = "aaabbb\cddd";   //  10个字节
    // printf("%ld\n",strlen(p));

#if 0
    char *str[4]   = {"aaaaa", "bbbbb", "ccccc", "ddddd"};    // 指针数组,存放的是指针变量

    printf("%s\n", *str);        // aaaaa
    printf("%s\n", *(str+1));    // bbbbb
    printf("%s\n", *(str+2));    // ccccc 
    printf("%s\n", *(str+3));    // ddddd
#endif

    // int (*ptr)[4] = {{1,2}, {3,4}, {5,6}, {7,8},{9,10}};   // 数组指针,一以数组为单位的指针(指向数组的指针)
    int ptr[][4] = {{1,2}, {3,4}, {5,6}, {7,8},{9,10}};   // 数组指针,一以数组为单位的指针(指向数组的指针)
   
    printf("%d\n", ptr[1][1]);


    return 0;
}

1、ptr是数组名,指向的是该数组的首地址。

2、str是一个二维数组的数组名,指向的是二维数组的首地址,也可以认为是一个指向一维数组的一个指针。

3、数组名是一个指针常量,不可以被更改,形参作为数组名的时候,编译器会自动转换成相应的指针类型。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值