昨天刚去鄙视了  第1题就被忽悠住了 这样的[code=C/C++][
struct s 
{
int i1;
struct s *i2,*i0;
}; static struct s a[3] = { 1,&a[1],'\0',4,&a[2],&a[0],6,'\0',&a[1]}, *ptr;
ptr = a;
]问下面哪个表达式非法:
1.ptr->i1++  2.*ptr->i2   3.++ptr->i0   4.*ptr->i1
当时选了4  
今天上机验证 结果 2   和4都被编译器报错,到底是怎么样呢?

解决方案 »

  1.   

    有一个不明白struct s *i0=‘\0’;这个是什么意思呢 
    i0里面的变量的值是什么呢 
      

  2.   

    2和4有区别吗?2. *ptr->i2  
    4. *ptr->i1 我看不出区别呢,除了i2和i1。
      

  3.   


    2.*prt->i2  这里的 prt->i2是,&a[1] 对,&a[1]使用*来解析当然没有问题4. *ptr->i1   这里的  prt->i1 是i  对一个i用 *操作符 能行吗??
    不知道我说道对不对
      

  4.   


    主要是变量命名太烂了,乍一看没啥差别而实际上一个是 int,一个是指针
      

  5.   

    我编译器是vc2005  系统是vista  2就是报错