若有定义语句:int x[5]={0, 1, 2, 3, 4}, *p;,则以下数值不为2的表达式是?

若有定义语句:int x[5]={0, 1, 2, 3, 4}, *p;,则以下数值不为2的表达式是: :
A . p=x+1, ++(*p)   
B . p=x+2, *p++
C . p=x+1, *(p++)   
D . p=x+1, *++p
为什么不选B,要选C呀?

B 的表达式是 (p=x+2, *p++),按"后缀++" 规定,在表达式内 先用原值,出了表达式再自增1。所以 B 的表达式 可以写成: (p=x+2, *p)。
p=x+2 就是 p=&x[2],
*p 就等于 x[2], 等于 2.
C 的表达式是 (p=x+1, *(p++) ),  按后缀++规定,在表达式内 先用原值,出了表达式再自增1。所以 C 的表达式 可以写成: (p=x+1, *(p) ),   
p=x+1 就是 p=&x[1],
*(p) 就等于 x[1], 等于 1. 数值不为2的表达式 选 C
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-11
p++的返回值是p原来的值,而不是增加后的值
B *p++ 返回*(x+2) x[2]=2
C *(p++) 虽然有括号先执行p++,p本身自增了,但返回值是x+1 ,*(x+1)=1本回答被提问者采纳

若有定义语句:int x[5]={0, 1, 2, 3, 4}, *p;,则以下数值不为2的表达式...
p=x+1 就是 p=&x[1],(p) 就等于 x[1], 等于 1. 数值不为2的表达式 选 C

...3,4,5,6,7};charc1=b,c2=2;则数值不为2的表达式是( )。
【答案】:D D。【解析】字符在进行数学运算时取其ASCⅡ码值,其中'b'的ASCⅡ码值为98,‘d’的ASCⅡ码值为100,字符'2'的ASCⅡ码值为50。可知D选项中表达式c2-0的值为50。

...6,7);char c1='b',c2='2';则数值不为2的表达式是D.c2-0._百度知 ...
【答案】:D 解析:本题考查数组的定义、初始化及其引用,以及对字符ASCII码值的熟悉程度。解本题的关键在于熟悉字符的ASCIII码值。字符在进行数学运算时取其.ASCII码值,其中'b'的ASCII码值为98,'d'的ASCII码值为100,字符'2'的ASCII:码值为50。根据以上知识,可知D选项中表达式 c2-0的值为5...

C语言若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数组不为3的表达...
答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在...

...a定义为:int a[][3]={{1,2,3},{4}};,则a[1][2]的值为( )。 (a...
答案应该是(d) 0 因为 int a[][3]={{1,2,3},{4}} 表示定义并直接对数组进行初始化。前面{1,2,3}是给a这个二维数组中的第一组,即a[0]这一组赋值:a[0][0] = 1, a[0][1] = 2, a[0][2] = 3;后面,{4},是给a这个二维数组中第二组赋值,即给a[1]赋值 但它只有一个...

学习C语言需要掌握哪些基本知识?
int main() { printf("小明今天又得到%d元零花钱\\n", POCKETMONEY); return 0; } 5.运算符 5.1.算数运算符:+,-,*,\/,%,++,--;前++\/--,先运算,再取值.后++\/--,先取值,再运算; 5.2.赋值运算符: 5.3.关系运算符; 5.4.逻辑运算符; 5.5.三目运算符: 表达式1 ? 表达式2 : 表达式3; 6.水仙花...

99. 若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)\/...
因为a[0]代表的是第一行的地址,所以此处sizeof(a[0])指的是一行的字节数。a[0] 是指第0行的3个元素,因而size of(a[0])=3 例如:int a[3][4]={1,2,3,4,5,6,7,8,9};相当于int a[3][4]={{1,2,3,4},{5,6,7,8},{9,0,0,0}};因此,a[1][3]=8, a[2][...

...a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是...
【答案】:B 本题考查指向数组的指针,本题中指针变量P指向数组a,那么*P的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即P+8指向的是数组元素值为9,所以数值为9的表达式是*(P+8)。

计算机二级常考函数的知识点
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再定义函数。 4、算法的是一定要有输出的,他可以没有输入。 5、break可用于循环结构和switch语句。 6、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由...

数学计算机
在原码表示法中,对0有两种表示形式:〔+0〕原=00000000[-0] 原=10000000(2)补码表示法 机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。例如...

相似回答