int main() { int a[]= {1,2,3,4,5,6,7,8,9}; int (*p1)[9]; p1=&a; int *p2=a; int q=a[3]; int &p3=q; q--; int *p4[]= {p2,p2+1,p2+2,p2+3,&p3,&q}; cout<<(*p1)[0]<<endl; cout<<*(p2+1)<<endl; cout<<p3<<endl; cout<<*p4[4]<<endl; cout<<*p4[q--]<<endl; } 输出是多少
时间: 2024-04-27 07:23:30 浏览: 111
输出结果是:
1
2
3
4
5
解析:
1. `(*p1)[0]` 表示指针 `p1` 所指向的数组 `a` 的第一个元素,即输出 1。
2. `*(p2+1)` 表示指针 `p2` 指向的地址加 1,即指向数组 `a` 的第二个元素,即输出 2。
3. `p3` 是 `a[3]` 的引用,即指向数组 `a` 的第四个元素,即输出 3。
4. `*p4[4]` 表示指针数组 `p4` 的第五个元素,即指向 `p3` 的指针,输出 `p3` 的地址,即输出 4。
5. `*p4[q--]` 表示指针数组 `p4` 的第 `q` 个元素,由于 `q` 的值在前面已经减了 1,所以指向 `q` 的指针,即指向 `a[3]` 的指针,输出 5。
阅读全文