c語言中scanf裡面要求輸入的變數也要初始化嗎

2021-12-25 02:11:10 字數 1658 閱讀 1949

1樓:

int scanf( const char *format, ... );

scanf()函式是格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。

其呼叫格式為: scanf("《格式化字串》",《地址表》);

函式 scanf() 是從標準輸入流 stdio 中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。

你的下面這個呼叫才是對的:

這裡卻沒有提示要我初始化,執行正常*/

上面的呼叫是錯的:

提示我這裡的兩個變數要初始化*/

當然ibegin,icount沒有初始化啦。

2樓:匿名使用者

你這句把變數都寫到字串裡面了,提示的應該不是要你初始化,而是說缺少引數吧

這樣寫完全沒有問題,寫入未定義的變數不會提示未初始化的,放心。

3樓:狼族遺孤

輸入語句應該是

引號的位置錯了引號裡面應該是輸入格式符,後面是儲存地址

用int 定義的變數不必初始化

4樓:匿名使用者

應該都要初始化吧,因為要考慮scanf出錯的可能性

在c語言scanf 語句中輸入控制符必須和變數的資料型別保持一致嗎?

5樓:

必須保持一致,否則統統出錯,函式立即返回已成功接收併為對應變數賦值的個數,對後續的變數列表不再理會。

6樓:gta小雞

scanf讀取的變數型別必須和格式定義符一致,否則會導致讀入失敗,甚至程式死迴圈。

printf傳入的變數型別不一定和控制符型別一致。例如,若傳入的是字元,而使用%d輸出,則將輸出該字元的ascii值。其他情況更復雜一些。

若定義double i=2.1並傳入到printf,採用%d輸出,將以有符號整型輸出i的低32位的值。最終結果是-858993459。

7樓:匿名使用者

沒錯,是的

~~~~~~

為什麼在c語言中,用scanf輸入字串時,不需加&

8樓:匿名使用者

舉例:char str[256];

scanf("%s",str);

其中str是陣列名,已經代表陣列的起始地址了,也可以這麼寫:

scanf("%s",&str[0]);

9樓:金色潛鳥

因為字串變數名在 scanf 語句裡 表示指標 (地址)

例如:char s[80];

scanf("%s",s); --- 這裡的s 已是地內址。

當然,寫成容 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。

10樓:匿名使用者

這個問題現在告訴你也聽不明白。。。

c語言中用scanf函式輸入字串後用strcmp函式比較

那個抄,字串是襲 有結尾符的啊 bai。長du度應該 zhi宣告為3.int main 字元陣列不能用這bai樣du 的方式賦值,b ab 並且字元數zhi組的長dao度版要比,實際長度 1,因為系統會在數權組內部自動加一個 0 作為字串的結束標誌,它佔一個空間,你如進行賦值的話用 可以用gets和...

c語言中scanf和printf函式的問題關於雙精度

其實嚴格來說 兩個是一樣的 輸入的時候要用 lf 輸出的時候也要用 lf 的 f能輸出double 我也不懂 哈哈 你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲 lf長浮點型,f浮點型 1f 小數點後1位 如果是 輸出printf 的輸...

c語言中怎樣輸入大於號,小於號,C語言中怎樣輸入大於號,小於號

輸入大於號和小於號,只要在英文輸入狀態下,按 鍵即輸入小於號,按 鍵即輸入大於號。按住shift鍵不放,再按 鍵 在鍵盤上找到就往進輸,一樣的。就是 和 號啊 和平時一樣的吧 倒 問題深了 是一樣的 暈了 具有討論性嗎?大於號,小於號怎麼打出來 大於號小於號怎麼打出來 1 按住鍵盤的shift 鍵,...