void main() {
int num;
num = 1;
num++;
num = num + 9;
printf('%u',num);
}
這是什麼問題?它說分段錯誤。 書面C.C中的分割錯誤
void main() {
int num;
num = 1;
num++;
num = num + 9;
printf('%u',num);
}
這是什麼問題?它說分段錯誤。 書面C.C中的分割錯誤
'%u'
應該是"%u"
(雙引號)。 C不是SQL,並且'%u'
被認爲是multicharacter literal。
而且正如Erik所說,%d
對你來說更好。
@Ian - 如果這解決了您的問題,您應該將此答案標記爲正確。 – 2011-04-04 17:06:50
printf("%d")
- printf採用C字符串而不是字符。 %d
是整數的正確格式說明符。
'%u'(一個多字符字符常量)應該是「%u」(一個字符數組)。 char常量被誤解爲隨機存儲器的指針。
注意,你會從傳遞錯誤的類型(int
而不是const char *
)爲printf
第一個參數,但你忘了#include <stdio.h>
或原型printf
自己得到了一個錯誤。而且由於printf
是一個可變參數函數,因此也會導致UB。
也使用'int main(int argc,char ** argv)'! – Benoit 2011-04-04 14:32:57
雖然在這種情況下,很明顯哪一行出現錯誤,請在未來的文章中明確包含此信息 - 它使每個人的生活變得更加簡單(包括您自己的)。 – 2011-04-04 14:35:07
查看編譯器的輸出是個好主意。我確信它已經提醒你已經有關於printf()。 – 2011-04-04 14:42:40