c语言问题,高手请进,指点一下

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:59:52
1.有以下说明则数值为4的表达式是

A.a[g-c] B. a[4] C. a[‘d’-‘c’] D. a[‘d'-c]

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12,};
char c=‘a',d,g;

小弟是新手看不懂以上程序啊,望各位大虾指点指点啊,答案选D,解释一下为什么啊?谢谢了

这个答案是D
第一个 []里面的 g 是字符 c ='a'意思是a的ASCII码 数值与字符不能相加减

B C语言的下标从0 开始 所以 a[4] 是5

C 'd'-'c' 是ASCII 相加减 值是1
a[1]=2

D 'd'是ASCII c='a'
所以c也是ASCII
相减得 3 a[3]=4

因为C的值是字符a,字符运算是换做ASCI码来算的,字符d减去字符a等于3,是4的下标。

'd'-c相当于 'd'-'a' 等于3 所以a[3]=4

a[‘d'-c]=a['d'-'a']=a[100-97]“ascII码”=a[3]就是{1,2,3,4,5,6,7,8,9,10,11,12,}中的第4个数,数组是从a[0]开始的