#include<iostream>
using namespace std;
void test1() {
//数组指针, p指向一个整型 一维 数组。
int arr[5] = { 10,20,30,40,50 };
int(*p)[5] = &arr;//数组指针
cout << "sizeof(p)=" << sizeof(p) << endl;
cout << "p=" << p << endl;
cout << "*p [0] 是" << *p [0]<< endl;
cout << " (*p) [0] 是" << (*p) [0]<< endl;
cout << "(*p) [2] 是" << (*p) [2]<< endl;//不写括号就错了
cout<<"----------------"<<endl;
//q指向 一个 一维数组 的元素,是一个整形元素的指针。
int *q=arr;
cout<<"*q是"<<*q<<endl;
cout<<"*q+1是"<<*q+1<<endl;
cout<<"*(q+1)是"<<*(q+1)<<endl;
cout<<"----------------"<<endl;
//arr也是首元素地址,就是数组地址。
cout<<"*arr是"<<*arr<<endl;
cout<<"*(arr+1)是"<<*(arr+1)<<endl;
}
void test02(){
//整型的指针开辟在堆区
int *q2=new int(100);
cout<<*q2<<endl;
delete q2;
//一维数组的指针 开辟在堆区
// int *arr=new int[10];
// for(int i=0;i<10;i++){
// arr[i]=i;
// }
// for(int i=0;i<10;i++){
// cout<<arr[i]<<endl;
// }
//指针数组 开辟在堆区
int **arr2=new int*[5];
int arr3[5]={13,24,34,15,90};
for(int i=0;i<5;i++){
arr2[i]=&arr3[i];
}
for(int i=0;i<5;i++){
cout<<*arr2[i]<<endl;
}
}
int main() {
// test1();
test02();
return 0;
}
部分代码参考精华篇:数组指针_AI蓝月的博客-CSDN博客