char (*p)[]和char *p[]的区别[建议收藏]

理解的关键在于:1.[]的优先级高于*,(*p)[]理解为指向一个数组,*(p[])存放指针的数组2. char(*p)[SIZE]:指向一维数组的指针,一维数组只能有SIZE个元素

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

理解的关键在于:

1. []的优先级高于*,(*p)[]理解为指向一个数组,*(p[])存放指针的数组

2. char (*p)[SIZE]:指向一维数组的指针,一维数组只能有SIZE个元素

    char *p[SIZE]:指针数组,数组有SIZE个元素

 

代码测试:

  1. #include <stdio.h>  
  2. #define TESTSIZE 20  
  3. int main(void)  
  4. {  
  5.     char szTest[][TESTSIZE] = {“hello”, “world”};  
  6.     char (*p)[TESTSIZE];  
  7.   
  8.     p = szTest;  
  9.     for(int i = 0; i < sizeof(szTEST)/TESTSIZE; i++)  
  10.     {  
  11.         printf(“%s”, p + i);  
  12.     }  
  13. }  

  

  1. #include <stdio.h>  
  2. #define STRSIZE 20  
  3.   
  4. int main(void)  
  5. {  
  6.      char *p[] = {“hello”, “world!”};                //p[],数组  
  7.      for(int i = 0; i < 2; i++)  
  8.          printf(“%s “, p[i]);  
  9.   
  10.      return 0;  
  11. }  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120254.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号