C++:指针的基本知识

说到指针,想必是一个让很多学编程的人头疼的问题,不少人一直搞不明白.

下面是我对指针的一些认识和了解(如果有不对的地方,欢迎向我提出).

一.指针的基本意义

指针实际上就是一个变量,但它是用于存储它所指向的变量的地址的

注:在不同操作系统下指针变量所占空间大小是不同的

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;  //这是一个野指针

 建议初始化每一个指针变量,因为野指针是很危险的!

今天就先分享到这里,下次本蒟蒻给大家讲讲:指针与数组

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]:这段代码展示了C++指针的基本用法。在这段代码中,我们定义了一个整型变量a,并用指针p指向a的地址。通过*p可以访问到a的值,通过&p可以获取a的地址。[1] 引用[2]:这段代码展示了一级指针和二级指针的用法。一级指针pi指向整型变量i,二级指针ppi指向一级指针pi。通过*pi可以访问到i的值,通过**ppi可以访问到i的值。通过改变一级指针的值和指向,可以改变所指向的变量的值和指向。[2] 引用[3]:这段代码展示了指针的动态内存分配和指向结构体的指针的用法。通过new关键字可以动态分配内存,并将指针指向新分配的内存空间。在example1函数中,通过new int(3)分配了一个整型变量,并将指针p指向该变量。在example2函数中,通过new int[3]分配了一个整型数组,并将指针q指向该数组的首地址。在example3函数中,通过new student[3]分配了一个结构体数组,并将指针stlist指向该数组的首地址。[3] 指针的知识点包括以下几个方面: 1. 指针的定义和声明:可以使用*来声明指针变量,例如int *p; 2. 指针的赋值和访问:可以使用&来获取变量的地址,通过*来访问指针所指向的变量的值,例如*p = 10; 3. 动态内存分配:可以使用new关键字来动态分配内存,例如int *p = new int; 4. 指针的指向:可以通过改变指针的值来改变指针所指向的变量或内存空间,例如p = &a; 5. 一级指针和二级指针:一级指针指向变量的地址,二级指针指向一级指针的地址,可以通过**来访问二级指针所指向的变量的值。 6. 指针和数组:可以使用指针来操作数组,例如通过指针访问数组元素,通过指针指向数组的首地址。 7. 指针和结构体:可以使用指针来指向结构体,通过指针访问结构体的成员。 以上是指针的一些基本知识点,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值