C++Note 指针和数组-函数
指针和数组:
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int arr[10] = { 0,1,2,3,4,5,6,7,8,9 }; 7 cout << "第一个元素为:" << arr[0] << endl; 8 int* p = arr;//arr 表明数组arr的首地址 并且赋给指针p 9 cout << p << endl;//输出数组地址 10 cout << *p << endl;//对数组首地址进行解引用输出 即输出数组第一个数值 0 11 cout << *(p + 7) << endl;//对指针自增七次 每次自增为4字节 结果输出 7 12 for (int i = 0; i < 10; i++) 13 { 14 cout << *(p + i) << " ";//输出从数组第一个数值到第十个 0 1 2 3 4 5 6 7 8 9 15 } 16 cout << endl; 17 system("pause"); 18 return 0; 19 }
指针和函数:
1.值传递 :不需要修改实参
2.地址传递 : 需要修改实参
1 #include <iostream> 2 using namespace std; 3 void swap02(int* a, int* b) //地址传递 会通过访问地址间接改变实参的数值 4 { 5 int temp = *a; 6 *a = *b; 7 *b = temp; 8 } 9 void swap01(int a, int b) //值传递 不会改变实参的数值 10 { 11 int temp = a; 12 a = b; 13 b = temp;// a = 20 b = 10 14 } 15 int main() 16 { 17 int a = 10; 18 int b = 20; 19 swap01(a, b);//开辟新空间 形参改变 实参不变 20 cout << "a = " << a << endl; //a = 10 21 cout << "b = " << b << endl; //b = 20 22 //地址传递,可以修改实参 23 swap02(&a, &b);//通过解引用访问地址改变了实参的数值 24 cout << "a = " << a << endl; //a = 20 25 cout << "b = " << b << endl; //b = 10 26 system("pause"); 27 return 0; 28 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)