C++ int &a,int a,int *a的比较
2022/2/11 20:12:32
本文主要是介绍C++ int &a,int a,int *a的比较,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
int a 是定义一个新的变量(新开了一个的地址):
e.g.
void swap_value(int a){ cout << "函数中的a : " << &a << endl; } int main(){ int a = 1; cout << "函数外的a : " << &a << endl; swap_value(a); return 0; }
打印结果如下:
函数外的a : 0x7fff5c146888 函数中的a : 0x7fff5c14684c
int &a 定义的是a的引用:
这样定义的变量的地址会与原变量的地址相同,就是一个地址同时指向了两个变量。
e.g.
void swap_value(int &a){ cout << "函数中的a : " << &a << endl; } int main(){ int a = 1; cout << "函数外的a : " << &a << endl; swap_value(a); return 0; }
打印结果如下:
函数外的a : 0x7fff5c146888 函数中的a : 0x7fff5dc63888
int *a 定义的是一个指针变量(将原先的变量的地址赋值给它)
e.g.
void swap_value(int *a){ cout << "函数中的a : " << a << endl; } int main(){ int a = 1; cout << "函数外的a : " << &a << endl; swap_value(&a); return 0; }
打印结果如下:
函数外的a : 0x7fff5c146888 函数中的a : 0x7fff5c14684c
所以我们发现 int a 这样定义会新开一个地址来存放这个变量,
但是 int *a 和 int &a 这样定义是将原地址直接给这个变量,只不过一个保存的是地址,一个保存的是值。
未经允许,不得转载。
这篇关于C++ int &a,int a,int *a的比较的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-25Elevate Your Lead Generation Game with Maps Scraper AI
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能