一道简单的C语言题
2.设有以下说明和定义语句,则下面表达式中值为3的是。structs{inti;structs*i2;};staticstructsa[3]={1,&a[1],2,&a[...
2.设有以下说明和定义语句,则下面表达式中值为3的是。
struct s
{ int i;
struct s *i2;
};
static struct s a[3]={1, &a[1],2,&a[2],3,&a[0]};
static struct s *ptr;
ptr=&a[1];
A)ptr->i++ B)ptr++->I C)*ptr->i D)++ptr->i
答案选什么?为什么? 展开
struct s
{ int i;
struct s *i2;
};
static struct s a[3]={1, &a[1],2,&a[2],3,&a[0]};
static struct s *ptr;
ptr=&a[1];
A)ptr->i++ B)ptr++->I C)*ptr->i D)++ptr->i
答案选什么?为什么? 展开
3个回答
推荐于2018-03-26
展开全部
答案为D
a[3]数组之中元素值(每一个数组元素都是结构体)
a[0] ={1, &a[1]}
a[1] ={2,&a[2]}
a[2] ={3,&a[0]}
ptr =&a[1];
选项A ptr->i++ = 1+1 =2;
选项B
ptr++->i =(ptr->i)++
此时ptr->i =2,由于是后缀,所以在此式子之后才变化
B、D就是++i,i++区别了。
选项C为
*ptr->i =*(ptr->i) //错误
选项D
++ptr->i = ++(ptr->i)
a[3]数组之中元素值(每一个数组元素都是结构体)
a[0] ={1, &a[1]}
a[1] ={2,&a[2]}
a[2] ={3,&a[0]}
ptr =&a[1];
选项A ptr->i++ = 1+1 =2;
选项B
ptr++->i =(ptr->i)++
此时ptr->i =2,由于是后缀,所以在此式子之后才变化
B、D就是++i,i++区别了。
选项C为
*ptr->i =*(ptr->i) //错误
选项D
++ptr->i = ++(ptr->i)
展开全部
其实这就是个循环链表,顺便理解自增操作就行了。
可知a[2].i 的值为3,故选D。
可知a[2].i 的值为3,故选D。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
argc
是传参个数,包括程序本身,就是exam
123的个数,2;
argv
是第一元素的个数,以上例来讲,就是123的个数,3;
答案应该是
6;
是传参个数,包括程序本身,就是exam
123的个数,2;
argv
是第一元素的个数,以上例来讲,就是123的个数,3;
答案应该是
6;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询