• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++指针的相关研究

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
//常量指针(指向常量的指针)【常量在前面 指针在后面 所以叫常量指针】
//为了解决指针可能误修改或破坏内存中的数据,我们可以对内存中的数据加上写保护。即具有这种属性的指针只能够读出内存中的数据,
//却不能修改内存中的数据。我们把具有这种属性的指针称为指向常量的指针,简称常量指针。
#include<iostream.h>
int main()
{
int t=1;
const int i=2;
const int *p;//常量指针允许指向相同类型的别的变量(或常量)可以用常量赋值,但不能间接引用修改数据,也可以更改它的指向。
// p=&i;
// p=&t;
*p=10;//不能间接引用修改数据
return 0;
}


//指针常量(指针在前常量在后面)【int * const p=&f 】
#include<iostream.h>
int main()
{
int t=9;
int i=100;
//const int i=100;//不允许指针常量指向常量
int *const p=&i;//变量i的内存地址变成了 常量的内存地址(不能被重新赋予新的地址)
*p=1;//可以间接赋值
//p=&t;//不能改变他的指向
return 0;
}
#include<iostream.h>
int main()
{
const int i=90;
//int *p=&i;//不能把常量的地址给指针变量
const int *p=&i;//常量指针则可以
return 0;
}


#include<iostream.h>
void main()
{
//指向常量 的 指针常量 ——————都不行 故*p=9与p=&b 都是错的
const int a=10;
int b=20;
const int*const p=&a;
cout<<*p<<endl;
}


//******************************************************** 关于*(p)++的研究
#include<iostream.h>
int main()
{
int a[6]={5,3,4,1,2,6};
int *p=a;
cout<<(*p)++<<" "<<*p<<endl;//(*p)++是表示使p所指向的元素增加1,但这里输出*p并不是如此
cout<<*p<<endl;//*p所指向的元素在这里才实现自增1,可见第一个元素的内存地址存的值已经自增1了,但是一开始却表达不出来。
return 0;
}



#include<iostream.h>
int main()
{
int a[6]={5,3,4,1,2,6};
int *p=a;
for(int i=0;i<6;i++)
{
cout<<(*p)++<<" ";//输出的结果并不是6 7 8 9 10 11;而是完全把首元素当成5开始自增了
}
return 0;
}



#include<iostream.h>
int main()
{
int a[6]={5,3,4,1,2,6};
int *p=a;
cout<<a[0]++<<endl;//这个a[0]++也是如此,输出来的元素也不会增加
return 0;
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
VCC运行时库(CRTL)的几个版本及选用发布时间:2022-07-13
下一篇:
C#WinForm开发系列-DataGridView发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap