n = scanf("%d",n);
創新互聯長期為超過千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為瀍河企業提供專業的成都做網站、成都網站建設,瀍河網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。
這一句有問題
1. scanf 函數是有返回值的,它的返回值可以分成三種情況
1) 正整數,表示正確輸入參數的個數。
例如執行 scanf(“%d %d”, a, b);
如果用戶輸入”3 4”,可以正確輸入,返回2(正確輸入了兩個變量);
如果用戶輸入”3,4”,可以正確輸入a,無法輸入b,返回1(正確輸入了一個變量)。
2) 0,表示用戶的輸入不匹配,無法正確輸入任何值。如上例,用戶如果輸入”,3 4”,返回0。
3) EOF,這是在 stdio.h 里面定義的常量(通常值為-1),表示輸入流已經結束。在Windows下,用戶按下CTRL+Z(會看到一個^Z字符)再按下回車(可能需要重復2次),就表示輸入結束;Linux/Unix下使用CTRL+D表示輸入結束。
你這個輸入一個返回值就是1,因此n也會一直等于一
可以這樣調用。
int b=0指的是默認參數,調用時傳入或不傳入b都行,如果不傳入b的話,那么b的值就是0。
另外注意只有最后面的參數可以是默認參數。
不明白你的意思……是不是類似于這樣 int hello(char a,int i = 4,int m = 9){} ?
這樣在c語言中是不可以的,這是c++的概念,默認參數,使用方法如下:以上面的hello函數為例
hello(n); 默認i=4,m=9。 hello(n,5,23); 這里在函數中i = 5,m = 23.
就是說,如果調用時給參數賦值了,就使用賦值的,如果沒有,就使用默認的
需要標明一點,這種函數參數表有個規則,就是所有的默認參數都靠后,即:int hello(int a = 1,int b,int c=23){} 是錯誤的……而且,使用時,也不可以跳過一個默認值給后面的值賦值,如:
int hello(char a,int b= 12,char c = 'd')如果想參數b使用默認而給c賦值,那么必須是hello(a,12,c),如果跳過賦值b,即:hello(a,c);就是錯的,很好理解,這樣就把c賦值給參數b了,一定報錯。
定義變量取初值:
一、不指定:
全局及靜態變量默認0,局部變量隨機值。
二、定義同時賦初值:
比如int a=1;char str[]="abc";
三、定義時未賦初值,在使用前賦值。
比如int a;a=1;printf("%d",a);
ps:注意函數內靜態變量定義給初值和之后賦值是有區別的,靜態變量的定義賦初值語句,只在第一次調用函數時執行,如定義之后有重新賦值的語句,再次調用函數,靜態變量會保留上次賦值的結果。
文章標題:c語言為函數參數賦初值,c語言指針賦初值
本文地址:http://vcdvsql.cn/article12/dsigidc.html
成都網站建設公司_創新互聯,為您提供全網營銷推廣、網站建設、ChatGPT、品牌網站建設、小程序開發、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯