首页 > 编程知识 正文

指针等于字符串常量(指针可以指向常数吗)

时间:2023-05-05 03:38:30 阅读:67674 作者:1398

指针指针就是指向变量在内存中的地址

数据是存放在内存中的,每一个变量都有一个内存地址,假设是一个int类型变量a,占4个字节的内存区,那么在内存中如果是小端方式存储,我们创建指针p,把a的地址赋值给p,就是把a的首地址0x1100赋值给指针p,这个时候p的值就是变量a在内存中的首地址

int a=10; int*p; p=a; //a的起始地址为P 也就是说指针的值是这块内存区域的首地址

内存地址内存是一个很大的,线性的字节数组,每一个字节都是固定8个二进制位组成,计算机对每个内存单元都进行了编号,这个编号就称为内存地址,地址决定了内存单元在内存中的位置

指针占用的内存位于32位系统上。 处理器一次可以处理的最大位数为2的32次方,即一次处理4字节的内存数据。 哪个3358www.Sina.com/?

指针的长度也就是4个字节中,处理器一次可以处理的最大位数为2的64次方,即一次处理8字节的内存数据。 哪个3358www.Sina.com/?

64位系统

常数变量const是常数的缩写,意思是本意不变,难以改变

指针的长度也就是8个字节

常数int a=7; int b=a; //正确的a=8; //错了,不能改变指针常数。 常数指针和指向常数的指针在知道上述基础知识后,返回32位系统指针4个字节 64位系统8个字节

首先,要说如何快速记住他们的差异,只有也就是说使用const修饰的变量,其值是不允许改变的就能记住

例如:

int * const p=a; 首先是指针int *,然后是const常数指针常量,常量指针和指向常量的指针

常数int * p=a; 首先是const常量,然后是指针int * 按照命名的顺序来读

是个好记忆吧

指针常数int * const p=a;那么p就是指针常量

因为const的功能是限制不能修改,所以指针常数先有int *指针,而且const是p 那么p就是常量指针

特点:指针的指向不可以修改,指针指向的内存的值可以修改

示例:

int a=10; int * const p=a; //定义指针常数,指向int a的地址*p=20; //正确的、指示的存储器地址中的数据可以修改为p=b; //错误,指向的内存地址为所以p的值(指向的内存地址) 是不可以修改的

常数指针const int *p=a;也就是const限制的是指针p的值,但是没有限定p指向的内存地址里的数据,所以内存的数据可以修改

箭头是指针指向的内存值,是不可以修改的,但是指向的内存地址中的数据可以修改

int a=10; int b=10; 常数int * p=a; //定义常数指针,指向int a的地址*p=20; //错误,指示的存储器地址中的数据不能更改p=b; //正确,指向的内存地址为特点: 指针的指向可以修改,但是指针指向的值不可以修改。

指向常数的常规指针const int const *p=a;常量指针,首先要是常量。就是指向的值要是一个常量,但是指向的内存地址不做限制

两个const限制一旦指定就不能修改

int a=10; int b=10; 常数常数常数* p=a; //定义指针常数,指向int a的地址*p=20; //错误,指示的存储器地址中的数据不能更改p=b; //错误,指示的内存地址无法修正

空指针,野指针箭头是指针指向的内存值,是可以修改的,但是指向的内存地址中的数据要和之前的一致

注意:无法访问空指针指向的内存

//int * P4=空值; //cout *p4 endl; 要运行Error,请在使用指针时使用空指针特点: 指针的指向不可以修改,指针指向的值也不可以修改。

//-------野指针(浮动、迷走指针)----/int*p5=0x1100; //任意赋值的野指针//cout *p5 endl; 运行//errorint * P6=new int (5; delete p6; 删除//p6点p6=NULL; //一定要这一步。 否则,p6随机指向一个地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。