本帖最后由 两手空空儿 于 2022-9-14 13:51 编辑 #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 //++的优先级比*高,这里是 *(b++) 也就是b指向a[2],取了*,但是没有使用
cout << * b << endl; // 输出 4 // 输出 6
cout << a[1] << endl; // 输出 4 // 输出 3
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;
}
只学了C,还不会C++,没有上机试,不知道说的有没有问题,后面楼主自己再顺一下吧,
void change1(int & a){
a++;
}
这个地方我看不懂, c的写法应该是 void change1( int *a) 这样吧 |