當前位置:首頁 » 編程軟體 » 編譯器輸出一長串數字什麼意思

編譯器輸出一長串數字什麼意思

發布時間: 2022-08-08 13:17:21

① c++ 編程 int a; cout<<a<<endl; 輸出的是-858993460 請問這個數字代表什麼

你想問為什麼是這個數,主要是因為編譯器在作怪,如果你懂匯編,那麼反匯編調試,容易知道
-858993460的十六進制是0xCCCCCCCC,0xCC在X86指令集中為int 3,int 3中斷,呵呵,OD其實就是用這個實現的,DEBUG這個機制是為了程序出現內存越界時調試器可以捕捉斷點這個異常,而在RELEASE下默認直接是內存清零,用VC RELEASE編譯以後顯示的結果為0

c語言中%s輸出字元串怎麼用

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

③ C語言中如何輸出長整型數值

在C/C++中,64為整型一直是一種沒有確定規范的數據類型。現今主流的編譯器中,對64為整型的支持也是標准不一,形態各異。一般來說,64位整型的定義方式有long long和__int64兩種(VC還支持_int64),而輸出到標准輸出方式有printf(「%lld」,a),printf(「%I64d」,a),和cout << a三種方式。

本文討論的是五種常用的C/C++編譯器對64位整型的支持,這五種編譯器分別是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,沒有一種定義和輸出方式組合,同時兼容這五種編譯器。為徹底弄清不同編譯器對64位整型,我寫了程序對它們進行了評測,結果如下表。

上表中,正確指編譯通過,運行完全正確;錯誤指編譯雖然通過,但運行結果有誤;無法編譯指編譯器根本不能編譯完成。觀察上表,我們可以發現以下幾點:

long long定義方式可以用於gcc/g++,不受平台限制,但不能用於VC6.0。

__int64是Win32平台編譯器64位長整型的定義方式,不能用於Linux。

「%lld」用於Linux i386平台編譯器,」%I64d」用於Win32平台編譯器。

cout只能用於C++編譯,在VC6.0中,cout不支持64位長整型。

表中最後一行輸出方式中的printint64()是我自己寫的一個函數,可以看出,它的兼容性要好於其他所有的輸出方式,它是一段這樣的代碼:

CPP

void printint64(long long a)


{


if (a<=100000000)


printf("%d ",a);


else


{


printf("%d",a/100000000);


printf("d ",a0000000);


}


}

這種寫法的本質是把較大的64位整型拆分為兩個32位整型,然後依次輸出,低位的部分要補0。看似很笨的寫法,效果如何?我把它和cout輸出方式做了比較,因為它和cout都是C++支持跨平台的。首先printint64()和cout(不清空緩沖區)的運行結果是完全相同的,不會出現錯誤。我的試驗是分別用兩者輸出1000000個隨機數,實際結果是,printint64()在1.5s內跑完了程序,而cout需要2s。cout要稍慢一些,所以在輸出大量數據時,要盡量避免使用。

④ C語言裡面的%ld、%d、%U都是什麼意思啊

1、%d 十進制有符號整數。

2、%u 十進制無符號整數。

3、%ld 輸出long整數 。

4、%s 字元串。

5、%c 單個字元。

6、%p 指針的值。

7、%e 指數形式的浮點數。

8、%x, %X 無符號以十六進製表示的整數。

9、%0 無符號以八進製表示的整數。

10、%g 自動選擇合適的表示法。

(4)編譯器輸出一長串數字什麼意思擴展閱讀

精度指定:

* d、o、i、 u、x 或 X 轉換的最少數字顯示位數。

* e 和 f 轉換的基數字元後的最少數字顯示位數。

* g 轉換的最大有效數字位數。

* s 轉換中字元串的最大列印位元組數目。

包含需要輸出的數據,可以是常量(字元常量、數字常量、字元串常量),變數,以及運算式。此處的數據應當與前面的format中的格式控制符一一對應(如果不對應會產生錯誤)。

⑤ c語言中如何輸入輸出字元串

在<string.h>頭文件中用字元串處理函數輸入和輸出,gest用來輸入,puts用來輸出。

字元串輸入函數gets,從鍵盤鍵入以回車結束的字元串放入字元數組中,並自動加』'。輸入串長度應小於字元數組維數,字元串中可以包含空格。

字元串輸出函數puts,向顯示器輸出字元串(輸出完,自動換行,即用' '替'')。字元數組必須以''結束。

示例代碼如下:

#include<string.h>

int main()

{

char str[40];

printf("請輸入字元串");

gets(str);

printf("請輸出字元串");

puts(str);

system("pause");

return 0;

}

(5)編譯器輸出一長串數字什麼意思擴展閱讀

在C中,對文件的操作分為兩種方式,即流式文件操作和I/O文件操作。

流式文件操作,這種方式的文件操作有一個重要的結構FILE,FILE在頭文件stdio.h中定義如下:

typedef struct {

int level; /* fill/empty level of buffer */

unsigned flags; /* File status flags */

char fd; /* File descriptor */

unsigned char hold; /* Ungetc char if no buffer */

int bsize; /* Buffer size */

unsigned char _FAR *buffer; /* Data transfer buffer */

unsigned char _FAR *curp; /* Current active pointer */

unsigned istemp; /* Temporary file indicator */

short token; /* Used for validity checking */

} FILE; /* This is the FILE object */

直接I/O文件操作,這是C提供的另一種文件操作,它是通過直接存/取文件來完成對文件的處理,此類文件操作常用的函數及其所用的一些符號在io.h和 fcntl.h中定義,在使用時要加入相應的頭文件。

⑥ c++編程 在c++編譯器中,比i安逸是出現錯誤提醒的時候會有數字,這些數字是什麼意思啊

錯誤C2296:「< <」:非法、左操作數具有類型「char[12]。
「< <」有問題 或是你其他地方導致這里有問題

⑦ c語言中的%d直接輸出的數是什麼含義

隨機數, %就想\一樣,如果不加任何修飾, 會當做轉義符用。
字元串應該是"%d".
之所以出現你的這種情況, 你應該結合你自己的code來看,
例如你輸出一個printf("%d",a);
a沒有初始化,有些編譯器會報錯的,或者直接輸出一個隨機數。

⑧ 請問 程序輸出後面的數字代表什麼意思

(1)你的輸出都是%d也就是以十進制輸出的:
printf("the place is %d\n",key);
printf("the place is %d\n",num);
printf("the place is %d\n",count);
printf("the place is %d\n",date);
printf("the place is %d\n",yield);
printf("the place is %d\n",price);
(2)輸出的結果都是隨機的,是計算機隨機賦給那些變數的值,你不需要知道這些返回值是干什麼的
(3)以後注意輸出的格式就是了,加油

⑨ C++看程序輸出結果問題,請高手解釋一下為什麼會是這樣的輸出結果,解釋一下流程!

return 表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。 return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。 如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。 如果實在不需要函數返回什麼值,就需要用void聲明其類型。 補充:如果你函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值的 例如: 1.非void型 int f1() 2.void型 void f2() 有時即使被調用函數是void類型 被調函數中的return也不是毫無意義的 舉例: #include "stdio.h" void function() main() 運行結果為:屏幕上只輸出一串數字1 而沒有2。 但是如果去掉function函數中的return語句 就可以同時輸出一串數字2 這里的return其實還有個退出該程序的作用!也就是說在printf("111111");後面加了個return,就表示結束該函數,返回主函數中去了!
[編輯本段]2.
關於C語言中return的一些總結 return是C++預定義的語句,它提供了種植函數執行的一種放大。當return語句提供了一個值時,這個值就成為函數的返回值. 說到return,有必要提及主函數的定義,下面是從網路上找到的資料,好好消化吧,對了解主函數中返回值的理解有很大的幫助. 很多人甚至市面上的一些書籍,都使用了void main( ) ,其實這是錯誤的。C/C++ 中從來沒有定義過void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地寫著 The definition void main( ) is not and never has been C++, nor has it even been C.( void main( ) 從來就不存在於 C++ 或者 C )。下面我分別說一下 C 和 C++ 標准中對 main 函數的定義。 1. C 在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的經典巨著 The C programming Language 2e(《C 程序設計語言第二版》)用的就是 main( )。不過在最新的 C99 標准中,只有以下兩種定義方式是正確的: int main( void ) int main( int argc, char *argv[] ) (參考資料:ISO/IEC 9899:1999 (E) Programming languages — C 5.1.2.2.1 Program startup) 當然,我們也可以做一點小小的改動。例如:char *argv[] 可以寫成 char **argv;argv 和 argc 可以改成別的變數名(如 intval 和 charval),不過一定要符合變數的命名規則。 如果不需要從命令行中獲取參數,請用int main(void) ;否則請用int main( int argc, char *argv[] ) 。 main 函數的返回值類型必須是 int ,這樣返回值才能傳遞給程序的激活者(如操作系統)。 如果 main 函數的最後沒有寫 return 語句的話,C99 規定編譯器要自動在生成的目標文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不過,我還是建議你最好在main函數的最後加上return 語句,雖然沒有這個必要,但這是一個好的習慣。注意,vc6不會在目標文件中加入return 0; ,大概是因為 vc6 是 98 年的產品,所以才不支持這個特性。現在明白我為什麼建議你最好加上 return 語句了吧!不過,gcc3.2(Linux 下的 C 編譯器)會在生成的目標文件中加入 return 0; 。 2. C++ C++98 中定義了如下兩種 main 函數的定義方式: int main( ) int main( int argc, char *argv[] ) (參考資料:ISO/IEC 14882(1998-9-01)Programming languages — C++ 3.6 Start and termination) int main( ) 等同於 C99 中的 int main( void ) ;int main( int argc, char *argv[] ) 的用法也和 C99 中定義的一樣。同樣,main 函數的返回值類型也必須是int。如果main函數的末尾沒寫return語句,C++98 規定編譯器要自動在生成的目標文件中加入 return 0; 。同樣,vc6 也不支持這個特性,但是 g++3.2(Linux 下的 C++ 編譯器)支持。 3. 關於 void main 在 C 和 C++ 中,不接收任何參數也不返回任何信息的函數原型為「void foo(void);」。可能正是因為這個,所以很多人都誤認為如果不需要程序返回值時可以把main函數定義成void main(void) 。然而這是錯誤的!main 函數的返回值應該定義為 int 類型,C 和 C++ 標准中都是這樣規定的。雖然在一些編譯器中,void main 可以通過編譯(如 vc6),但並非所有編譯器都支持 void main ,因為標准中從來沒有定義過 void main 。g++3.2 中如果 main 函數的返回值不是 int 類型,就根本通不過編譯。而 gcc3.2 則會發出警告。所以,如果你想你的程序擁有很好的可移植性,請一定要用 int main 。 4. 返回值的作用 main 函數的返回值用於說明程序的退出狀態。如果返回 0,則代表程序正常退出,否則代表程序異常退出。下面我們在 winxp 環境下做一個小實驗。首先編譯下面的程序: int main( void ) 然後打開附件里的「命令提示符」,在命令行里運行剛才編譯好的可執行文件,然後輸入「echo %ERRORLEVEL%」,回車,就可以看到程序的返回值為 0 。假設剛才編譯好的文件是 a.exe ,如果輸入「a && dir」,則會列出當前目錄下的文件夾和文件。但是如果改成「return -1」,或者別的非 0 值,重新編譯後輸入「a && dir」,則 dir 不會執行。因為 && 的含義是:如果 && 前面的程序正常退出,則繼續執行 && 後面的程序,否則不執行。也就是說,利用程序的返回值,我們可以控制要不要執行下一個程序。這就是 int main 的好處。如果你有興趣,也可以把 main 函數的返回值類型改成非 int 類型(如 float),重新編譯後執行「a && dir」,看看會出現什麼情況,想想為什麼會出現那樣的情況。順便提一下,如果輸入 a || dir 的話,則表示如果 a 異常退出,則執行 dir 。 5. 那麼 intmain(intargc,char*argv[],char*envp[])呢? 這當然也不是標准 C 裡面定義的東西!char*envp[] 是某些編譯器提供的擴展功能,用於獲取系統的環境變數。因為不是標准,所以並非所有編譯器都支持,故而移植性差,不推薦使用。 到了這里,你應該了解為什麼主函數定義為 int返回類型,而且函數體裡面有return 0;這個語句了吧. 下面具體說說我對return的應用的理解。 只要一個函數的返回值是數字型的,那麼就可以返回0(即return 0),其實你返回多少都沒問題。一般情況下,C++做出來的函數都要求返回一個值,當函數執行正常,且達到了一般情況下的目的,那麼就返回0表示正確的調用了該函數,這個0就是返回給主調函數以通知沒有出錯的;如果函數調用中出錯,或者沒有按照一般情況執行,那麼就返回1,以告知主調函數採取響應策略;如果你在某個函數所在類的定義所在的頭文件中定義了一組狀態值(一般都是負整數),那麼函數就可以返回不同的值以告之主調函數具體發生了什麼異常或錯誤,這種情況一般用於函數功能獨立性較差的的情況。所以一般不鼓勵把函數返回類型定義為void,至少返回應該是int,而在函數的最後加上return 0.語句: int func(參數列表) 在函數中,如果碰到return 語句,那麼程序就會返回調用該函數的下一條語句執行,也就是說跳出函數的執行,回到原來的地方繼續執行下去。但是如果是在主函數中碰到return語句,那麼整個程序就會停止,退出程序的執行。 如果你定義一個函數有返回類型,可以想下面那樣調用: int func() int main() return語句後面具體是什麼內容,這就要具體情況具體分析了: (1) 在返回類型是char的函數中,return後應該是char類型的值; (2) 在返回類型是int的函數中,如果是要停止函數的調用,最好應該為0;其他的按照你的目的而定,只要是int 類型就行了 (3) 在返回類型是結構類型的函數中,return後應該是結構的一個實例對象。 總之,函數定義為什麼樣的返回類型,該函數中return後就應該是相應類型的值。

熱點內容
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:311
pythonempty 發布:2024-05-19 07:15:16 瀏覽:928
路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:997
方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:597
魔獸世界自動釣魚腳本 發布:2024-05-19 06:43:07 瀏覽:495
cbs加密 發布:2024-05-19 06:29:56 瀏覽:201
ssis存儲過程 發布:2024-05-19 06:21:31 瀏覽:631
怎樣刪除小視頻文件夾 發布:2024-05-19 05:49:29 瀏覽:589
開啟php短標簽 發布:2024-05-19 05:44:12 瀏覽:473
android各國語言 發布:2024-05-19 05:42:54 瀏覽:247