#include <stdio.h> int main() { int a[] = {1, -2, 3, -4, 5}; int *p = a; while (p <= a + 4) { printf("%d\n", *p); p++; } return 0; }中*p=a什么意思,后面代码的结果是怎么运算出来的
时间: 2024-03-24 11:36:08 浏览: 45
#include <stdio.h>
`*p = a` 这个语句是错误的,应该是 `*p = &a[0]`。这里的 `*p` 表示指针 `p` 所指向的地址上的值,而 `a` 表示数组 `a` 的首地址。`&a[0]` 也表示数组 `a` 的首地址,所以这里可以用 `a` 或 `&a[0]` 来给指针 `p` 赋值。
在 `while` 循环体内,先输出指针 `p` 所指向的值,然后将指针 `p` 加一,指向下一个元素的地址。这样循环执行,直到指针 `p` 指向了数组 `a` 的最后一个元素,即 `a+4`,循环结束。
输出的结果是:
```
1
-2
3
-4
5
```
这是因为数组 `a` 中的元素分别是 1、-2、3、-4、5,依次被指针 `p` 指向并输出。
阅读全文