指针 就是地址 大小就是4个字节(32位系统)
如果 是64位系统 就是8个字节 切记
这个博主写的很详细,关于指针的所占字节大小的原因
X86\X64平台下指针占用几个字节?
下图这是用x86环境测试
结果如下:
X86环境下指针大小为4个字节
这是当运行环境更改为64位时候 所占字节大小为8
指针的使用:p = &a *p = 常量或变量
地址是唯一的
野指针:没有进行初始化以及为赋值的指针,由编译器随机进行赋值
解决:在初始化时给一个初值可以是NULL(标识地址0x00000000)
段错误:访问不允许访问的地址、通过指针修改不可修改的值
指针的运算:指针-指针 结果为long类型
指针+数字 地址向高地址方向偏移
指针-数字 地址向低地址方向偏移
指针++/指针–:改变了原有的指针的指向
关系运算符 > <
比较高低地址用的
关于C语言中申请空间malloc和释放空间frew
要加入头文件stdlib
注意:free过后要把指针指为空
指针:
int const *p : 指向可以改变 但是 指向空间的内容不能变;
int * const p:指向空间的内容可以改变但指向不可以改变;
const int *const p:都不可以改;(没有意义)
用函数指针连接四个字符串操作函数
指针数组:
int *p[5] 本质上是一个装地址的数组,遵循数组的用法,数据遵循指针的用法,作用将分散的地址连续起来
数组指针(行指针):
本质是一个指向有n个空间数组的指针
- 暂时先写到这 ,过2天再看看关于C指针的错题