我正在學習從C編程書籍的一些問題,但是遇到一個有趣的問題:4個參數? 3?
真的還是假的?
聲明:
scanf("%d:%f:%1f\n", &a, &b, &c);
包含四個參數
"%d:%f:%1f\n"
,&a
,&b
和&c
。給出的答案是true。這是爲什麼?我在這裏看不到4個參數/參數。
對或錯?
聲明:
printf("%+2d",123);
顯示
+12
答案是假。這是爲什麼?
我正在學習從C編程書籍的一些問題,但是遇到一個有趣的問題:4個參數? 3?
真的還是假的?
聲明:
scanf("%d:%f:%1f\n", &a, &b, &c);
包含四個參數"%d:%f:%1f\n"
,&a
,&b
和&c
。
給出的答案是true。這是爲什麼?我在這裏看不到4個參數/參數。
對或錯?
聲明:
printf("%+2d",123);
顯示+12
答案是假。這是爲什麼?
問題#1
參數是那些由逗號分隔:)。
scanf("%d:%f:%1f\n", &a, &b, &c);
// 1 2 3 4
問題2
行打印+123,試試吧。
printf("%+2d",123);
從http://www.cplusplus.com/reference/clibrary/cstdio/printf/:
簡介:%[flags][width][.precision][length]specifier
+
):部隊前面加上一個加號或減號(+或 - ),結果即使是正數。默認情況下,只有負數前面帶有 - 符號。2
):要打印的最小字符數。如果要打印的值小於此數字,則結果將填充空白。即使結果較大,該值也不會被截斷。d
):有符號的十進制整數第一個參數:"%d:%f:%1f\n"
第二個參數:&a
第三個參數:&b
第四個參數:&c
在函數調用中傳遞給函數的參數有四個。
首先;
scanf("%d:%f:%1f\n", &a, &b, &c);
包含4個參數;
1: "%d:%f:%1f\n"
2: &a
3: &b
4: &c
第二;
printf("%+2d",123);
2表示最小字段寬度,但123是寬於2個字符和將全部打印。 +
強制一個符號,所以結果是+123
。
在第一種情況下,參數意味着傳遞給函數的參數,而不是格式語句參數。在第二個問題中,加號表示輸出一個加號,而2表示輸出至少使用兩個地點。打印不會截斷一個數字,所以它會打印出全部三位數字。
關於#1:你看到了多少個論點(我算四個)?關於#2:你會期望什麼 - 你試過了嗎? – home
你好,歡迎來到SO。請考慮編輯您的問題,以便使用格式化功能。代碼通常用反引號標記,導致像'this'這樣的東西。另外,我想你的第一個問題中缺少的第四個'''是由於你的複製造成的偶然的。 –
然後,請一次只問一個問題。在本案例中,你可能已經從第一個問題的答案中學到了,避免第二次,因爲你知道在哪裏尋找它。 –