3条回答 默认 最新
关注 首先,ptr指针指向的是结构体数组a中的第二个元素,也就是定义的第二个结构体
2,&a[2]
还是优先级的问题,D选项先是->
找到了i1元素2,然后进行前置++,2就变成了3。struct s { int i1; struct s* i2; }; static struct s a[3] = { 1,&a[1],2,&a[2],3,&a[0] }, * ptr; int main() { ptr = &a[1]; //int a = ptr->i1++;//2,先找到了2赋值给a后,i1才++ //int a = ptr++->i1;//2,找到了2赋值给a后,指针++指向了下一个 //int a = *ptr->i1;//错误,无法对int类型解引用 int a = ++ptr->i1;//3 printf("%d\n", a); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错
- ¥15 拓扑学,凸集,紧集。。
- ¥15 如何扩大AIS数据容量
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助