说到指针,想必是一个让很多学编程的人头疼的问题,不少人一直搞不明白.
下面是我对指针的一些认识和了解(如果有不对的地方,欢迎向我提出).
一.指针的基本意义
指针实际上就是一个变量,但它是用于存储它所指向的变量的地址的
注:在不同操作系统下指针变量所占空间大小是不同的
32位系统占4个字节
64位系统占8个字节
指针的定义:
数据类型 * 指针变量名 = &变量名;
举一个指针变量例子
int num = 1024; //一个普通整型变量,赋值为1024
int * ptr_num = #//一个指针变量,指向num
第二句话定义了一个int类型的指针,注意这里有一个取地址符,所以"="右边的值是类似于0x666ff8这样的16进制数,表示一个地址.
我们可以试着输出一下
可以看到确实输出了一个16进制数,那么怎么通过指针输出num的值呢?
其实只要在指针变量的前面加上一个小小的"*"(星号)就可以了.
cout << "num的值:" << *ptr_num << endl;
小结:指针也是变量的一种,只是是用来存储地址的.
下面讲一下空指针和野指针
空指针:指针变量指向内存编号为0的空间
int * ptr1 = 0;
int * ptr2 = ptrnull;
int * ptr3 = NUll; //如果不使用万能头文件,就要包含cstdlib这个头文件
//这三条语句达到的效果都是一样的
这样做为了初始化指针变量,防止变为野指针
野指针:指变量指向非法的内存空间,即没有初始化的指针变量
int * ptr1; //这是一个野指针
建议初始化每一个指针变量,因为野指针是很危险的!
今天就先分享到这里,下次本蒟蒻给大家讲讲:指针与数组