int *p;
//*p = 1;//错误
//p = &1;//错误
int x=0;
//*p = x;//错误
p = &x;
std::cout << p << std::endl;
std::cout << *p << std::endl;
int *array1[5];
//*array1[0] = 1;//不能这样初始化
//*array1[1] = 2;
//*array1[2] = 3;
//*array1[3] = 4;
//*array1[4] = 5;
for (int i = 0; i < 5; i++) {
std::cout <<array1[i] << std::endl;//未初始化
//std::cout <<*array1[i] << std::endl;//未初始化 错误
}
//指针数组正确初始化
int a[5] = { 1,2,3,4,5 };
int* pt[5];
for (int i = 0; i<5; i++)
{
pt[i] = &a[i];
std::cout << *pt[i] << std::endl;
}
int ab[5] = { 10,20,30,40,50 };
for (int i = 0; i<5; i++)
{
int *pt1 = &ab[i];
pt[i] = pt1;
std::cout << *pt[i] << std::endl;
}
//指针与数组必须相关联,才能使用数组的功能:
char *p5;
char array10[10] = "cnblogs";
p5 = array10;
std::cout << p5[0] << std::endl;
令人头疼的指针与数组