C++学习笔记系列2-42——指针和一维数组(4)
2026/7/8 8:37:43 网站建设 项目流程

总结

1、指针要和数组的变量类型保持一致才能建立联系;

int arr[ 3 ] = { 1, 2, 3 };

int* p1 = arr ;

int* p2 = &arr[ 0 ] ;

2、指针可以通过自增减进行数据访问,但是要注意“越界”问题;

cout << *p1 <<endl; // 输出:1

cout << *(++p1) <<endl; // 输出:2

cout << *(++p1) <<endl; // 输出:3

cout << *(++p1) <<endl; // 越界了,输出一个不确定值

3、数组名就是地址,并且是它的首个元素的地址;

int arr[ 3 ] = { 1, 2, 3 };

int* p1 = arr ;

int* p2 = &arr[ 0 ] ;

// 以不同方式为 2 个指针和数组 arr 建立联系

if ( p1 == p2)

{

cout << "p1、p2中存储的地址是一样的。" <<endl;

cout<< "p1中的地址是:" << p1 <<endl;

cout<< "p2中的地址是:" << p2 <<endl;

}

输出:p1、p2中存储的地址是一样的。

p1中的地址是:0x69fe08

p2中的地址是:0x69fe08

4、数组名是一个固定的地址,所以它不能做“自增减”操作;

5、数组名可以当做指针使用,通过“数组名 + 索引号”方式进行数据访问;

int arr[ 3 ] = { 1, 2, 3 } ;

int length = sizeof(arr) / sizeof(int);

int* p = arr ;

for( int i = 0; i < length ; i++ )

{

cout << *( arr + i ) << endl;

}

6、当指针没有确切地址赋予时,使用“nullptr”将其置空;

int* ptr = nullptr ;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询