若有定义:int a[3][3];则表达式&a[2][1]-a[0]的值为() A. 7 B. 8 C. 6 D. 9
时间: 2024-04-19 19:15:11 浏览: 12
&a[2][1] 表示 a 数组中第 3 行第 2 列的地址,即 &a[2][1] = (char*)a + 2 * 3 + 1 * sizeof(int)。而 a[0] 表示 a 数组第 1 行的地址,即 a[0] = (char*)a + 0 * 3 * sizeof(int),所以 &a[2][1] - a[0] = [(char*)a + 2 * 3 + 1 * sizeof(int)] - [(char*)a + 0 * 3 * sizeof(int)] = 7。
因此,选项 A. 7 是正确答案。
相关问题
设有定义:int x=10;则表达式 0<=x<=9 的值为
false。
解释:在C语言中,0<=x<=9被解释为(0<=x) <= 9,即先判断0<=x的真假(10不符合),再将真假值(0)转换为1,最后判断1 <= 9的真假(true)。因此整个表达式的值为true,不等于预期结果。正确的表达式应该是0<=x && x<=9,即同时满足0<=x和x<=9。
若有定义:int a=3,b=2,c=1;并有表达式:a%b,a>b>c,b&&c+1,c+=1,则表达 式值相等的是( ) 。
表达式a%b的值为1。
表达式a>b>c等价于 (a>b) && (b>c),因为a=3,b=2,c=1,所以其值为0。
表达式b&&c+1 等价于 (b!=0) && (c+1!=0),因为b=2,c=1,所以其值为1。
表达式c+=1 等价于 c=c+1,执行完后c的值为2。
因此,表达式的值相等的是1和b&&c+1,即选项C。