李长凡 发表于 2019-5-18 09:26:12

课本上一道例题 谭浩强第四版例8.29

#include <stdio.h>

int main()
{

        int a={1,2,5,6,9};
        int *name={&a,&a,&a,&a,&a};
        int i;
        int **no;       
        for(i=0;i<5;i++)
        {
                no=name+i;
                printf("%d\n",*no);        //问题在这里,现在我这样可以正常打印        ,课本上需要再加上一个*号,而我加上之后就会报错。
        }
        return 0;
}

李长凡 发表于 2019-5-18 09:27:26

我的格式错了

ba21 发表于 2019-5-18 10:25:49

李长凡 发表于 2019-5-18 09:27
我的格式错了

??????

jackz007 发表于 2019-5-18 14:30:28

本帖最后由 jackz007 于 2019-5-18 14:31 编辑

      这样定义指针数组是错误的
      int * name = {& a , & a , & a , & a , & a} ;
      应该这么写才正确
      int * name[] = {& a , & a , & a , & a , & a} ;
      试一下改过的代码呢?
#include <stdio.h>

int main()
{

      int a = {1 , 2 , 5 , 6 , 9}                              ;
      int * name[] = {& a , & a , & a , & a , & a} ;
      int i                                                       ;
      int ** no                                                   ;
      for(i = 0 ; i <5 ; i ++) {
                no = name + i                                       ;
                printf("%d\n" , ** no)                              ;
      }
}
页: [1]
查看完整版本: 课本上一道例题 谭浩强第四版例8.29