下面的解釋讓我很困惑:
當引數是指向變數 x 的指標時,我們通常假設 x 將被修改: f(&x);
但是,f 可能只需要檢查 x 的值,而不是更改它。
我厭倦了理解,下面的代碼無法作業。
#include <stdio.h>
void function(int& a)
{
a = 5;
}
void func(int b)
{
b = 5;
}
int main(void)
{
int x = 0;
function(x);
printf("%d", function(x));
func(x);
printf("%d", func(x));
return 0;
}
代碼參考第二個答案:
int f(int &a){
a = 5;
}
int x = 0;
f(x);
//now x equals 5
int f2(int b){
b = 5;
}
int y = 0;
f2(y);
//y still equals 0
uj5u.com熱心網友回復:
一個實際使用的例子f(&x):
#include <stdio.h>
void f(int *p) {
*p = 4;
}
int main(void) {
int x;
f(&x); // Provide a pointer to `x`.
printf("%d\n", x); // 4
return 0;
}
您的兩個程式都使用int &a,這不是有效的 C 宣告。這就是為什么他們甚至不編譯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386845.html
下一篇:C記憶體泄漏以釋放鏈表
