C++之指针
2021/9/20 17:29:38
本文主要是介绍C++之指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
>>>>>
对c++指针的理解:
int* a{}, b;// a是指针,b是Int。别这么写,会增加理解成本。 int c = 2000; int* pc = &c;// 把c的地址赋值给pd,&是取址运算符。指针命名一般用p开头。pc表示c的内存地址 *pc = 500;// 表示在c的内存地址写入500,本质:c = 500; //32位系统地址大小0-2^32,64位系统地址大小0-2^64。 sizeof(pc);// 指针pc的内存大小,在32位系统下占4字节,在64位系统下占8字节。 int* ptrArrary[10];// 定义一个数组指针,即10个int指针。他的地址是连续的。 unsigned e = 100; pc = (int*)&e;// 不同类型变量赋值到指针。原因:pc的本质是内存地址,内存地址是正整数,int的范围包含了unsigned // 有坑。当int的pc拿到了unsigned强转的地址,不可赋值负数,否则出现极大值。只能赋值正数。 long long* up{ (long long*)e };// 有坑。8字节的指针up读取了4字节的e,多读取了4个未知地址的值,会出现未知的值。 // 指针运算 int d[]{ 1,2 }; int* pd{ &d[0] }; (*pd)++;// 表示d[0]++,即2 pd++;// 地址增加一个指针类型的大小。即:*pd表示d[1]的3 int** ppd{ &pd };// ppd表示指针*pd的地址,即:指针的指针 *ppd;// 表示a[0]的地址 **ppd;// 表示a[0]的值 int*** pppd{ &ppd };// 以此类推 // 常量指针! const int a{ 1000 }; const int b{ 2000 }; const int* cpa = {&a};// cpa是常量指针,此指针不可修改,常量修饰的是指针地址内的值 //*cpa = 500;// 报错,因指向常量指针的值不可修改 cpa = &b;// 地址是可以修改的,地址不是常量 std::cout << *cpa << std::endl; // 指针常量! int a{ 1000 }; int b{ 2000 }; int* const pca{ &a };// pca是指针常量,常量修饰的是指针的地址 //pca = &b;// 报错!因地址是常量不可修改 *pca = 500;// 地址内的值可以修改 // 常量指针的常量! int const a{ 1000 }; int const b{ 2000 }; const int* const cpca{ &a };// cpca是常量指针的常量,一经初始化不可修改。 //cpca = &a;// 报错!地址是常量不可改 //*cpca = 500;// 报错!值是常量不可改 // 修改指针指向常量的值 int const a{ 1000 }; int* pa{ (int*)&a };// 将常量a的地址给指针pa *pa = 666;// 此时指针的值可以改,但a的值未改 std::cout << *pa << std::endl;// *pa是666 std::cout << a << std::endl;// 此时a的值仍然是1000。a是常量,*pa改不动我a的值 // 理解->去鲁迅的地址抓周树人,鲁迅:你抓周树人跟我鲁迅有什么关系? // 回顾:修改指针指向变量的值 int a{ 1000 }; int* pa{ (int*)&a };// 将常量a的地址给指针pa *pa = 666;// 修改指针pa的值,本质就是修改a的值。 // 理解->先改指针pa的值,然后再通过地址去改变量a的值。
注意:定义指针一定要指定初始化,否则非常危险。
目录:C++初体验_神兽白泽-CSDN博客
>>>>>
这篇关于C++之指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南