您当前的位置: 首页 >  c语言

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

c语言指针数组探究

鱼儿-1226 发布时间:2022-10-13 13:56:42 ,浏览量:0

      1.首先定义一个指针数组,存储int型的指针元素。

                                           int * parray[3];

       赋值给该数组:

                           int a=1,b=3,c=5;

                   parray[0]=&a;

                           parray[1]=&b;

                   parray[2]=&c;

猜猜:                 printf("%d\n",sizeof(parray));的打印值。

Java代码 

 

  1. //结果:  
  2. 12  

 原因:一个指针占4个字节,数组有三个元素所以是:4*3=12。   若换成char * parray是一样的,和元素类型无关。

          2.再看看这个:

Java代码 

 

  1.         char **parray[3];     
  2.     printf("%d\n",sizeof(parray));  
  3. //结果  
  4. 12  
  5.   
  6.   
  7.         char *(*parray)[3];   
  8.     printf("%d\n",sizeof(parray));  
  9. //结果  
  10. 4  

       3.来看看这个:

Java代码 

 

  1.         int a=1,b=3,c=5;  
  2.     int *parray[3];  
  3.     parray[0]=&a;  
  4.     //*(parray++)=&b;       //非法的,数组的这个表示比较特殊不能像指针那样移动,应该赋值给一个int *p=parray;后再用p移动。  
  5.   
  6.     printf("%d\n",parray[0]);  
  7. //结果,parry[0]中存储的是指针(即地址)。  
  8. 1245024            //就是a的地址。通过*parray[0]可以取到a的值。*的含义就是根据这个地址去取值。  
关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.0389s