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 }
复制代码

 

posted on   廿陆  阅读(9)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示