1樓:
c語言不允許其引數型別是 void,void代表沒有引數。
int foo(void a); 這樣的函式是錯誤的, 形參不能是void型別。另外你的程式還有其他錯誤:
#include
void g(int a1, char b) // a1後面的逗號換成英文的,半形的
char *g1(char p1)
void main()
2樓:
指向函式的指標就不說了
char *g1(char p1)
這個函式就不對,*str2是在子函式定義的,子函式結束的時候會析構,所以你return的str2是個野指標
3樓:匿名使用者
指向函式的指標定義錯誤,必須和函式的定義型別一樣,包括函式的引數型別,返回值型別和引數個數 ,改成這樣void (*fun_pointer)(int p0,char p1);
char (*fun_pointer2)(char p2);
4樓:匿名使用者
void g(int a1,char b)char *g1(char p1)
void (*fun_pointer)(void *p0,void p1);
void (*fun_pointer2)(void *p2);
其實沒明白你的意思,想用函式指標的話 應該這麼定義void (*fun_pointer)(int a1,char b);
char * (*fun_pointer2)(char p1);
5樓:匿名使用者
看不懂 第一個函式怎麼會在函式體給char型別的形參賦值?
6樓:
1、void 不是五返回值型別,而是「無型別」,即不是任何已經定義過的型別。再直白的說就是沒有,在函式名前面的意思就是不返回任何型別的資料
2、函式改變的不是引數本身,輸入引數是指標,參與運算的實際資料不是作為引數的指標,而是通過指標間接訪問的記憶體單元。就像中國移動通過銀行拿了你的錢,但沒拿銀行的錢(雖然其實他很想直接拿銀行的錢)
3、還是那句,作為引數的資料地址沒有變,只是地址裡的資料變了,「是否可以理解為「被呼叫」函式的計算結果的值返回到swap(&x,&y);」不要這麼牽強的去理解改變了的東西。就像銀行從不在乎中國移動要扣你多少錢,銀行只在乎你是否同意扣錢
問c語言指標問題,問一個c語言指標問題
不行,首先你要有一個陣列存放字母,然後這個二維陣列,行中表示下一個元素應該是a i j,你這樣寫的話就是跳到了下一行了,二不是下一個字母了,你需要知道指標只能指向已存在的物件。如果物件本身並不存在,那麼是無法指向的。你舉的例子裡,沒有說明 b 在哪個位置,從何指出b的地址呢。你要是想用p指向a的地址...
問非常簡單的C語言問題
第一個是初始化,第二個是錯誤的 下面兩種都是準確的 1 int a 2 int p a 2 int a 2 int p p a 第一個是定義時候初始化,第二個是賦值操作 你可以把int 看做是一個新型別 cccc在看看下面兩種情況 int a 2 或者int a a 2 這樣定義你要不懂就沒辦法了 ...
凶級c語言問題大大們幫幫我,小白級c語言問題,大大們幫幫我
int num,sum scanf d num sum 0 while num 0 printf d n sum vc 6.0下已通過,用12345測試的結果是15,程式如下 include include int fen int x,int y main int fen int x,int y w...