#include <stdio.h>
int ABC(int &n) // Error=> expected ')'
{
printf("n=");
scanf("%d",&n);
}
請幫幫我!謝謝:)<Error><main.c> in simple program
#include <stdio.h>
int ABC(int &n) // Error=> expected ')'
{
printf("n=");
scanf("%d",&n);
}
請幫幫我!謝謝:)<Error><main.c> in simple program
你是無法得到的參數爲使用符號(&)地址。因此,您可以使用指針 來獲取一個變量的地址。
int ABC(int *n)
{
scanf("%d",n);
}
在傳遞到該函數時,必須傳遞變量的地址。
int a;
ABC(&a);
&
是address of
運算符,它不能作爲參數傳遞給函數。
如果你想修復你的代碼,你需要傳遞參數n
沒有&
#include <stdio.h>
int ABC(int n)
{
printf("n=");
scanf("%d",&n);
}
看看到C-FAQ的Question 4.11
Q:是否Ç連有``通過引用傳遞''?
A:不是。
嚴格地說,C總是使用價值傳遞。你可以通過引用自己來模擬通過 ,通過定義接受指針的函數,然後在調用時使用&運算符,編譯器將 基本上爲你模擬,當你將一個數組傳遞給函數 (通過傳遞一個指針,見問題6.4等)。
看它的另一種方式是,如果一個參數具有類型,比方說, INT *然後整數正在被引用傳遞和一個指向 整數正在由值來傳遞。基本上,C沒有任何東西真正等價於 引用或C++引用參數的正式傳遞。 (在另一方面, 函數樣預處理宏可以提供的一個``形式通過 名「」通過。)
參見問題4.8,7.9,12.27和20.1。
要通過模擬參考一通:它使用&
int ABC(int *n)
{
printf("n=");
scanf("%d", n);
printf("%d\n", *n);
return 0;
}
電話:
int x;
ABC(&x);
相同的代碼我在C++試過它的工作只是返回一個值,並看到了希望,這可能給你一個想法
int ABC(int &n)
{
printf("n=")
scanf_s("%d",&n);
return n;
}
問題標記爲「C」和「xcode」,而「scanf_s」特定於Microsoft編譯器。 –
什麼是你想怎麼辦? – Mansuro
C沒有C++風格的引用......如果你正在做引用傳遞,請使用指針。 – Dmitri
你應該更具體,在你的問題。 – SVN