| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
#include <stdio.h> 
 
int main() 
{ 
 
        int a[5]={1,2,5,6,9}; 
        int *name={&a[0],&a[1],&a[2],&a[3],&a[4]}; 
        int i; 
        int **no;         
        for(i=0;i<5;i++) 
        { 
                no=name+i; 
                printf("%d\n",*no);        //问题在这里,现在我这样可以正常打印        ,课本上需要再加上一个*号,而我加上之后就会报错。 
        } 
        return 0; 
} 
 本帖最后由 jackz007 于 2019-5-18 14:31 编辑 
      这样定义指针数组是错误的
 -         int * name = {& a[0] , & a[1] , & a[2] , & a[3] , & a[4]} ;
 
  复制代码
      应该这么写才正确
 -         int * name[] = {& a[0] , & a[1] , & a[2] , & a[3] , & a[4]} ;
 
  复制代码
      试一下改过的代码呢?
 - #include <stdio.h>
 
  
- int main()
 
 - {
 
  
-         int a[5] = {1 , 2 , 5 , 6 , 9}                              ;
 
 -         int * name[] = {& a[0] , & a[1] , & a[2] , & a[3] , & a[4]} ;
 
 -         int i                                                       ;
 
 -         int ** no                                                   ;
 
 -         for(i = 0 ; i <5 ; i ++) {
 
 -                 no = name + i                                       ;
 
 -                 printf("%d\n" , ** no)                              ;
 
 -         }
 
 - }
 
 
  复制代码 
 
 
 |   
 
 
 
 |