|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如下 , 注释里是我的理解 , 但是和输出不一致 , 求教 , 不懂为什么错- #include<bits/stdc++.h>
- using namespace std;
- int a[6];
- void change(int a){
- a++;
- }
- void change1(int & a){
- a++;
- }
- int main(){
- int c = 1;
- for (int i = 1; i <= 5; i++){
- a[i] = i * 3;
- }
- int * b = & a[1]; // b 指向 a[1], a[1] == 3
- change( * b); // change 没有影响
- cout << * b << endl; // 还是 3
- cout << a[1] << endl; // 还是 3
- * b++; // b 指向的值++ , 即 a[1]++ == 4
- cout << * b << endl; // 输出 4
- cout << a[1] << endl; // 输出 4
- change1( * b); // 把 b ++ 了 , a[1] == 5
- cout << * b << endl; // 5
- cout << a[1] << endl; // 5
- * b = c; // b 指向 c , 值为 1
- change(c); // 没用
- cout << * b << endl; // 1
- cout << c << endl; // 1
- change1(c); // 2
- cout << * b << endl; // 2
- cout << c << endl; // 2
- return 0;
- }
复制代码
本帖最后由 jhq999 于 2022-9-14 19:16 编辑
* b = c;//其实是a[2]=c=1 指针b的值一直等于&a[2]
所以33行输出的是a[2]的值,和c的改变没有任何关系
|
|