20180529-2

Posted kxzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20180529-2相关的知识,希望对你有一定的参考价值。

下列程序的运行结果是3,5,请为横线处选择合适的程序( )
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
 struct S
 {
    int n;
    char c[10];
 } *p;
 main()
 {
    struct S a[3]={{3,"abc"},{5,"def"},{7,"ghi"}};
    p=a;
    printf("%d,",(*p).n);
    printf("%d ",___________);
 }
(++p)->n
(a+1)->n
p++->n
(p+1)->n

答案ABD 错选B
多选  - -。
A 选项如果把括号去掉,运算结果就会变成4.因为成员选择符->优先级比前置++、后置++都要高。
C 选项p++->n中加括号"(p++)->n"或者不加括号,运算结果都是3。
《C专家编程》中讲过,++a是取a的地址,增加它的值,再写入寄存器中,而a++是取a的地址,将它的值装入寄存器,再增加它的值。因此可以解释为什么C选项加不加括号结果都一样。
 
p中存放a的地址(相当于首元素地址)
A:++p相当于加到a[1],(++p)->n == 5
B:a为首元素地址,+1,相当于加到a[1],(a+1)->n == 5
C:p后++,这时p还是在a[0],p++->n ==3
D:p+1相当于加到a[1],(++p)->n == 5
 




以上是关于20180529-2的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数