(C)2 2 (D)4 6
分析:在此题中p++是后加方式,先输出p的值,p再自加,pp是二级指针,指向一级指针p,执行第一条输出语句前后,存在下列指向关系:
所以本题应选b
问题5:下列输出语句执行后结果为:
int i=3;
printf(“%d”,-i++);
(A)3 (B)4
(C)-3 (D)-4
分析:此题考查运算符的优先级,负号运算符和++运算符同优先级,而结合方向为“自左至右”,即-i++相当于-i++ ,所以先取出i的值3,输出-i的值-3,然后i增值为4,而不是i先增值为4,然后输出-4,所以答案选择C。
问题6:设有以下语句,
struct st
{int n;
struct st next;
};
static struct st a[3]={5,&&a[1],7,&&a[2],9,’\0’},p;
则以下表达式的值为6的是:
(A)p++→n (B)p→n++
(C)(p).n++ (D)++p→n
分析:此题也是考查运算符的优先级,→优先级高于++,结合方向为自左至右,而后者结合方向为自右至左,A答案相当于p++ →n
B答案相当于p→n ++所以A、B、C表达式值均为5,D答案相当于++p→n 自加方式为前加方式,所以其值为6。