C++指针入门
C++指针入门
C++中变量位置
#include <iostream> using namespace std; int main () { int var1; char var2[10]; cout << "var1 变量的地址: "; cout << &var1 << endl; cout << "var2 变量的地址: "; cout << &var2 << endl; return 0; }
输出:
var1 变量的地址: 0xbfebd5c0 var2 变量的地址: 0xbfebd5b6
得出第一条规律
&变量名
可以返回变量的存储地址
C++中指针的声明
int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch; /* 一个字符型的指针 */
#include <iostream> using namespace std; int main () { int var = 20; // 实际变量的声明 int *ip; // 指针变量的声明 ip = &var; // 在指针变量中存储 var 的地址 cout << "Value of var variable: "; cout << var << endl; // 输出在指针变量中存储的地址 cout << "Address stored in ip variable: "; cout << ip << endl; // 访问指针中地址的值 cout << "Value of *ip variable: "; cout << *ip << endl; return 0; }
输出:
Value of var variable: 20 Address stored in ip variable: 0xbfc601ac Value of *ip variable: 20
利用指针实现swap()
//correct code void swap(int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; }
//wrong code void swap1(int a,int b) { int temp; temp=a; a=b; b=temp; } void swap2(int *a,int *b) { int *temp; temp=a; a=b; b=temp; }
下面两段代码都有问题;
第一段代码直接调用的a和b,函数无法对值进行修改
改成inline void就可以了
第二段代码temp也是指针,交换了由副本指向的内容,但a,b内容不会变。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异