c++指针【C++】
文档目录:
指针到底是什么?指针其实就是一个变量,但是与其他的变量不同,它保存的是其他变量的地址,而不是数值。
就好像我们的身份证号码就是一个指针,而我们的名字是一个变量名,国家在寻找我们的时候,不是去查询我们的名字,而是查询我们的身份证号,然后访问我们身份证号里面的信息。
当代码 int year时 系统分配出一块名字为year的内存空间,他的地址是0028FF44,当代码year=15;时系统将15存入地址为0028FF44的内存空间中。
当代码 int*ptr_year时, 系统同样为ptr_year分配一个内存空间,但是这个空间是用来存储地址的。当代码ptr_year=&year时,系统把year的地址存储到指针ptr_year的内存空间中。
指针的基本用法:
取地址符号:&
简介运算符:*
double num =1024.5;
double* ptr_num=#//声明一个指针,指向num变量。
cout<<"num的地址是:"<<&num<<endl;
cout<<"ptr_num的值:"<<ptr_num<<endl;
cout<<"ptr_num指向空间的值:"<<*ptr_num<<endl;
doublenum=3014;
double *ptr_num=#
void *ptr_num1=#
cout<<boolalpha;
cout<<(ptr_num==ptr_num1)<<endl;
指针小结:
指针和引用:
1.指针操作数组快于下标操作数组
2.数组的空间分配.如int a[10];——会在空间分配出40个相邻的内存单元来(10*4)。
3.指针操作数组
|
4.指针移动
int*pa;
int a[10];
pa = &a[0];
(
int a[10];
int *pa=&a【0】;
)
pa+1将指向下一个元素a[1]:
>> 内存中的变化:"指针加1"会根据指针指定的类型int移动4个内存单元,其实本身并没有移动,只是pa+1等于第5个内存单元地址——“指针加1”中的1的大小是取决于pa的类型int的,指针类型决定指针跨内存单元的步长。
>> pa+1 等于是指向第5个内存单元——a[1]的第一个内存单元。
*以上信息是我本人今天学习的总结,来自不同的老师和前辈。感谢他们的无私。