1
A
回答
1
4
要回答你真正的問題,-6i
是一個複雜的常量(GCC擴展)。從http://gcc.gnu.org/onlinedocs/gcc/Complex.html:
要使用複雜的數據類型寫入常量,請使用後綴'i'或'j'(任意一個;它們是等效的)。例如,
2.5fi
的類型爲_Complex float
,而3i
的類型爲_Complex int
。這樣一個常量總是有一個純虛數值,但是你可以通過給一個實常數加一個來形成你喜歡的任何複數值。這是一個GNU擴展;如果您的ISO C99符合C庫(如GNU libc),並且想要構建浮點類型的複數常量,則應該包含<complex.h>
,並使用宏I
或_Complex_I
代替。
所以在-6i
的i
無關與變量i
,宛若漂浮不斷-1.0f
的f
就什麼都沒有做一個叫f
變量。
一個附註printf("%d",-6i);
是未定義的行爲,因爲格式規範%d
不處理複雜的參數。對於複雜類型的表示,GCC沒有做出任何承諾(據我所知)。你不能說什麼printf()
會做什麼。
我認爲要打印複雜的值,你必須分別提取複雜值的每個組件(我認爲glibc的printf()
不具有處理GCC複雜類型的格式規範擴展)。例如:
相關問題
- 1. C printf輸出到變量
- 2. C刪除printf輸出
- 3. C修改printf()以輸出到文件
- 4. C中的奇怪printf輸出
- 5. printf給我錯誤的輸出C
- 6. 用於Java的C兼容printf輸出
- 7. 的printf的意外的輸出在C
- 8. printf(「%s」,pch)VS.而(輸出( 「%C」 PCH [I]))?
- 9. C++和printf - 奇怪的字符輸出
- 10. Printf不打印輸出
- 11. printf導致輸出問題
- 12. printf未對齊輸出
- 13. printf中的輸出錯誤
- 14. printf/scanf的輸入/輸出替代品
- 15. printf()輸出中的混淆
- 16. 使用printf輸出格式?
- 17. 如何從printf的輸出
- 18. 關於printf輸出困惑
- 19. 奇怪的printf輸出
- 20. 從C++調用C API缺少printf語句的輸出
- 21. OpenMP C和C++ cout/printf不提供相同的輸出
- 22. 將printf C++控制檯輸出重定向到C#
- 23. 的printf VS的putchar - 不同的輸出
- 24. 調試時GDB printf奇怪的輸出
- 25. 我在K&R練習中沒有輸出printf輸出1-16
- 26. 如何緩衝和延遲printf()輸出?
- 27. iOS - 如何看iphone上的printf輸出?
- 28. Perl附加printf輸出到字符串
- 29. 帶有控制輸出功能的Printf
- 30. printf的輸出是相反的順序
我可以告訴你如何找出答案。 –
那你等什麼? –
@ mohan.gade:自己粘貼代碼:http://gcc.godbolt.org/ – akira