64位程序怎么判断指针是否有效_C语言——指针

本文介绍了64位程序中指针的特性,包括指针大小、指针的有效性判断及注意事项。强调了指针记录地址的特性,以及在不同场景下的使用,如间接访问、函数传参和堆空间利用。同时讨论了空指针、野指针的概念,以及指针运算、多级指针和const修饰的指针的用法。
摘要由CSDN通过智能技术生成

指针:也可以叫指针变量,与其他类型的变量相同,同样保存一个值,只不过保存的值是一片地址(16进制数)

注:在32位机上,指针统一占4个字节,64位机则占用8个字节,因为指针就是用来保存

地址,所以地址多大,指针就有多大。

一、使用指针需要了解并注意:

因为指针记录的是地址,所以理论上来说,指针就记录了一个16进制数,所以以下操作是合理:

int *p = 0xFFFF10;

但是编译器会报警告,警告的原因是p需要接受一个int *类型的数据,而0xFFFF10是一个立即数,不知道是什么类型的,于是为了骗编译器,所以可以修改代码为:

int *p = (int *)0xFFFF10; //强制数据类型转换

编译和运行以上代码会发现,程序不会有任何错误,这是因为系统允许指针记录任意的地址值,但是对于该指针不要进行读写操作,因为指针指向的内存,当前进程是否有权限操作是不确定的,如果没有权限操作程序会报段错误

二、指针的作用:

1.可以间接访问,提高效率

2.函数传参时直接传地址,更方便,地址传递最大的好处是节约内存开销

3.可以使用堆空间,获取更大的内存操作空间

1:直接访问与间接访问

直接访问:直接访问一个变量名,是访问的内存空间中的值通过变量名做赋值操作,是可以直接修改内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值