char (*res)[]与char *res[]的区别

char (*res)[]char *res[] 都是关于字符指针的声明,但它们表示的意义有所不同。

  1. char (*res)[]

    • 这是一个指向字符数组的指针的声明。
    • res 是一个伪二级指针,它指向一个未知大小的字符数组,指向指针的指针。
    • **res==arr[0], (*res)[i]==arr[i], *((*res)+i)==arr[i],但是不能res[i][j]。
    • 这种声明通常用于指向动态分配的字符数组或者多维字符数组。
    char (*res)[]; // 声明一个指向字符数组的指针
    
    char arr[] = "Hello";
    res = &arr; // 将指针指向字符数组
    
    printf("%s\n", *res); // 输出字符数组的内容
    
  2. char *res[]

    • 这是一个字符指针数组的声明。
    • res 是一个数组,数组的每个元素都是一个字符指针。
    • 这种声明通常用于表示字符串数组,每个元素是一个指向字符串的指针。
    char *res[] = {"apple", "banana", "orange"}; // 声明一个字符串指针数组
    
    for (int i = 0; i < 3; i++) {
        printf("%s\n", res[i]); // 输出字符串数组的每个元素
    }
    

总结:

  • char (*res)[] 是指向字符数组的指针,而 char *res[] 是一个字符指针数组。前者用于指向字符数组,后者用于存储字符串指针。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值