下面程序: int a[5][5], i; int *p = (int *)(a + 1); for (i = 0; i < 20; i++) {*p++ = i; } 执行上面程序后,a[3][2]的值是?
时间: 2024-03-19 12:39:53 浏览: 14
这段程序的作用是将一段连续的内存空间按顺序填入数字 0~19,其中 a 是一个 5x5 的二维数组,p 是指向 a[1][0] 的指针。因为 a 是一个二维数组,所以 a+1 相当于指向了 a[1][0] 的指针,因此 p 指向了 a[1][0]。接下来的循环中,p 不断自增,每次将当前的 i 值填入 p 所指向的位置。因此,执行完这段程序后,a[3][2] 的值为 11。
相关问题
3.下面程序: int a[5][5], i; int *p = (int *)(a + 1); for (i = 0; i < 20; i++) { *p++ = i; } 执行上面程序后,a[3][2]的值是?
首先,a是一个二维数组,其中每个元素的类型为int,所以a[0][0]的地址就是a的地址,a[1][0]的地址就是a的地址+1,以此类推。所以a+1的地址就是a[1][0]的地址,即第二行第一个元素的地址。
将a+1转换为int*类型的指针p后,执行*p++ = i;语句即把i的值赋给*p,然后将p的值加1,即指向下一个int类型的元素。
按照行优先的顺序,执行20次后,a[3][2]的值为14。
解释如下:
首先,a[0][0]~a[0][4]的地址依次为:a, a+1, a+2, a+3, a+4。
a[1][0]~a[1][4]的地址依次为:a+5, a+6, a+7, a+8, a+9。
a[2][0]~a[2][4]的地址依次为:a+10, a+11, a+12, a+13, a+14。
a[3][0]~a[3][4]的地址依次为:a+15, a+16, a+17, a+18, a+19。
而p的初始值为a+1,即指向a[1][0]的地址,所以第一次执行*p++ = i;语句后,a[1][0]的值为0,p指向a[1][1]的地址。
第二次执行*p++ = i;语句后,a[1][1]的值为1,p指向a[1][2]的地址。
以此类推,直到第15次执行*p++ = i;语句后,a[3][0]的值为14,p指向a[3][1]的地址。第16次执行*p++ = i;语句后,a[3][1]的值为15,p指向a[3][2]的地址。所以a[3][2]的值为14。
【程序改错】 题目:输出多个字符。 注意:不可以增加或删除程序行,也不可以更改程序的结构。 */ #include"stdio.h main(){ int i; char *a1={'a','b’,'c','d','e'}**=*ERRR*==** for(i=0;i<=5;i++) /*****RROR*=======**
这段程序有一些错误,我把它们标注在下面了:
```c
#include "stdio.h"
main() // 缺少返回值类型
{
int i;
char *a1={'a','b’,'c','d','e'} // 错误的字符数组赋值方式
**=*ERRR*==** // 无意义的语句
for(i=0;i<=5;i++) // 循环应该是 i<5
/*****RROR*=======**/ // 错误的注释格式
printf("%c",*(a1+i)); // 缺少输出语句
}
```
修改后的程序如下:
```c
#include "stdio.h"
int main()
{
int i;
char a1[] = {'a', 'b', 'c', 'd', 'e'};
for (i = 0; i < 5; i++)
{
printf("%c", *(a1 + i));
}
return 0;
}
```
输出结果为:`abcde`
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)