這裡寫的都是今天的收穫,雖然很少,但我相信會積少成多的,而且記下了,自己以後來看的時候,會回想起來。
1.原來c語言的標準輸入輸出函式都是有返回值的。
輸入的原型是:int scanf( char const *format, ...); (參考自c和指標)
當輸入合法時,返回1, 否則返回0
下面是**測試
int main()
}
顯示的結果:
123abc456def789
output:1
output:0
output:0
output:1
output:0
output:0
output:1
輸出的原型是:int printf(char const *format, ...);
函式返回值是實際列印或儲存的字元數。
**測試:
int main()
輸出結果:
abcdefghijk:11
press any key to continue
2.指標函式、函式指標
int *fun(int a, double b);//是指標函式,fun是乙個函式(這個函式接收兩個引數),
乙個返回指向int型別的指標的函式。
int (*fun)(int a, double b);//是函式指標,這裡的fun是乙個指標(位址),
fun這個指標指向的是乙個函式,乙個什麼樣的函式呢?
乙個帶有兩個引數的函式,函式的返回值型別是什麼呢,是int型別。
即還需要要想使用這個fun就另外再定義乙個函式,不!是定義乙個函式,
因為開頭一句並沒有宣告函式,只是宣告了乙個指標變數(這個變數比較特殊,只能指向函式)。
好吧,(這是說給自己聽的)也就是fun是乙個變數,
什麼型別?指標型別,這個指標幹神馬的,是用來指向乙個函式的。
指向哪個函式,指向的函式有什麼要求呢?函式要求是返回值是int ,
引數列表是(int, double)。
上面理解了,這個也可以理解了,int * (*fun)(int a, int b);//哈哈,外面加的*是修飾
的是所指向的函式型別,
這個fun是乙個指標,乙個指向指標函式的指標。
上面的函式要求就變化了,返回值是int *, 引數列表是(int , double).
3.既然int (*fun)(int a, double b);中是宣告乙個指標,
這是我剛開始看書的,自己寫的一些逗比操作。
int (*fun)(int a, double b)
是錯誤的。//這是在main函式之外寫。
vc++ 6.0中是這樣說的:error c2239: unexpected token '{' following declaration of 'fun'
//在main函式之內寫
vc++ 6.0中是這樣說的: error c2601: 'fun' : local function definitions are illegal
error c2063: 'fun' : not a function
既然是乙個變數,那麼宣告在main函式內,和main函式外區別就那就是宣告週期和作用域的區別了。。。
如果上面是乙個函式的話,就不可能宣告在main函式中,因為c語言不支援乙個函式中定義另一函式。
就寫這麼多吧,這裡的差不多都是寫給自己看的,各位看官如發現我理解上的錯誤,還望指出。
c語言輸入輸出函式
c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...
C語言輸入輸出函式
c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...
c語言輸入輸出函式
c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...