对于普通的变量,变量名不能直接赋给指针,需要加取地址符号(&),而数组则可以直接将数组名直接赋给指针。
// 普通变量
int a = 3;
int *q = &a; //变量取地址赋给指针
std::cout << "q = " << q << std::endl; // a的地址
std::cout << "&a = " << &a << std::endl; // a的地址
std::cout << "*q = " << *q << std::endl; // 指针q指向的值
std::cout << "&q = " << &q << std::endl; // 指针q的地址
// 数组
int b[] = { 1,2,3 };
int *p = b;
std::cout << "&b = " << &b << std::endl; // 数组b的地址
std::cout << "b = " << b << std::endl; // 数组b的地址
std::cout << "p = " << p << std::endl; // 数组b的地址
std::cout << "*p = " << *p << std::endl; // 指针p指向数组b的第一个值
std::cout << "b[1] = " << b[1] << std::endl; // 数组b的第二个值
std::cout << "p[1] = " << p[1] << std::endl; // 数组b的第二个值
std::cout << "&p = " << &p << std::endl; // 指针p的地址
打印的结果