11、若有定义:int a[3][3];则表达式&a[2][1]-a的值为
时间: 2024-06-22 17:02:11 浏览: 18
在C语言中,数组名`a`实际上是数组第一个元素的内存地址,对于二维数组`a`,它的内存是连续存储的,每行的元素按顺序排列。所以,`&a`获取的是数组中第三个元素(因为数组索引从0开始,`a`对应的是第三行)的地址,而`a`本身就是整个数组的首地址。
表达式`&a - a`计算的是`a`元素地址减去整个数组`a`的起始地址,由于数组中的元素都是连续存放的,这个差值实际上是`a`相对于数组首元素的偏移量,即一个元素的大小(在大多数现代编译器中,假设是一个整数类型的大小,如`int`)。
因此,`&a - a`的值等于`sizeof(int)`。
相关问题
若有定义:int a[3][3];则表达式&a[2][1]-a[0]的值为() A. 7 B. 8 C. 6 D. 9
&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。
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)