這個問題考察的是運算符的優(yōu)先級,++和--的優(yōu)先級高于取反(-)
在凱里等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)營銷網(wǎng)站建設(shè),凱里網(wǎng)站建設(shè)費用合理。
i++(或者i--)表示先取用i的值,然后再進行自加(或者自減)運算
++i(或者--i)表示先對i進行自加(或者自減)運算,再取用i的新值
多數(shù)編譯器會從右向左對參數(shù)壓棧,所以printf函數(shù)會從右向左依次計算參數(shù)值。
i=8,-(-i--)=-8,此時i=7
-(-i++)=-7,此時i=8
-(i--)=8,此時i=7
-(++i)=8,此時i=8
-(--i)=7,此時i=7
-(++i)=8,此時i=8
-i=8
但是,壓棧順序沒有硬性規(guī)定,所以不同編譯器可能有不同的壓棧操作,結(jié)果會有不同
#includestdio.h//#include表明這是給編譯程序預(yù)處理用,因為程序中要用函數(shù)printf,因此必須在尖括號中寫stdio.h,因為printf函數(shù)在這個文件中被定義
int main() //每個c程序必須且僅有一個main函數(shù),前面的int報名函數(shù)結(jié)束執(zhí)行后需要給定一個整型的返回值,后面的空括號表明main是個函數(shù),且沒有(不需要)調(diào)用參數(shù)
{ //函數(shù)體作為一個完整的結(jié)構(gòu),是這個函數(shù)(main函數(shù))所有可執(zhí)行語句的集合,如果是多句組成需要用大括號括起來,如果僅一句則可省略,這個大括號表示main函數(shù)的開始.c語言程序的組成單位是語句,每個語句用分號結(jié)尾
pirntf是c語言標準輸出函數(shù),后面的括號中是調(diào)用這個函數(shù)的參數(shù),雙引號中的一串字符作為調(diào)用這個函數(shù)的參數(shù),printf負載將這個字符串顯示到屏幕上,c語言中雙引號中給出的叫字符串,最后的\n表明一個換行回車字符(無法明文直接寫換行符只好用\n替代)
由于main函數(shù)前面有int,因此函數(shù)在結(jié)束時需要用return語句后面跟一個int型數(shù)據(jù)作為main函數(shù)的返回值,由于程序中未關(guān)心返回值問題,直接寫個人畜無害的0,這個0將返回給調(diào)用者(一般是windows的控制臺程序). 如果main前面寫void表明這個函數(shù)無需返回值,那么這個return語句可寫成return;由于這個語句出現(xiàn)在最后一句,不帶參數(shù)的reutrn語句可以省略
這個程序會從main函數(shù)開始執(zhí)行,遇到printf語句則輸出其中字符串內(nèi)容到顯示屏(控制臺窗口中),然后結(jié)束程序.你可以考慮修改字符串中內(nèi)容為Hello world!\n然后重新編譯運行試試
兩者完全不同,scanf是輸入函數(shù),printf是輸出函數(shù),所以會經(jīng)常同時出現(xiàn)。兩者也沒有可比性,需要弄清他們的概念。
1.scanf()是C語言中的一個輸入函數(shù)。函數(shù) scanf() 是從標準輸入流stdio (標準輸入設(shè)備,一般指向鍵盤)中讀內(nèi)容的通用子程序,可以說明的格式讀入多個字符,并保存在對應(yīng)地址的變量中。
比如:scanf("%d?%d",a,b);
函數(shù)返回值為int型。如果a和b都被成功讀入,那么scanf的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。
2.printf()函數(shù)是格式化輸出函數(shù), 它是c語言中產(chǎn)生格式化輸出的函數(shù)(在 stdio.h 中定義)。用于向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數(shù)據(jù)格式說明組成。
printf 函數(shù)的一般形式為:
int?printf(const?char?*format,?[argument]);
Format 參數(shù)是包含三種對象類型的一個字符串:
(1)無格式字符復制到輸出流;
(2)轉(zhuǎn)換規(guī)范,每個規(guī)范導致在值參數(shù)列表中檢索 1 個或更多個項;
(3)轉(zhuǎn)義序列。
[Argument]包含需要輸出的數(shù)據(jù),可以是常量(字符常量、數(shù)字常量、字符串常量),變量,以及運算式。此處的數(shù)據(jù)應(yīng)當與前面的format中的格式控制符一一對應(yīng)(如果不對應(yīng)會產(chǎn)生錯誤)。
例子:
#includestdio.h
int?main(){
int?i,?j;
scanf("%d?%d",?i,?j);? ?//獲得輸入值i,j;
printf("i=%d;j=%d",?i,?j);? //輸出i,j;
return?0;}
擴展資料:
在C語言或C++中,會把用來#include的文件的擴展名叫 .h,稱其為頭文件。 #include文件的目的就是把多個編譯單元(也就是c或者cpp文件)公用的內(nèi)容,單獨放在一個文件里減少整體代碼尺寸;或者提供跨工程公共代碼。
stdio 就是指 “standard input output"(標準輸入輸出)。
在C語言中,輸入和輸出是經(jīng)由標準庫中的一組函數(shù)來實現(xiàn)的。在ANSI C中,這些函數(shù)被定義在頭文件stdio.h中。所以,源代碼中如用到標準輸入輸出函數(shù)時,就要包含這個頭文件.
引用方法:#include?stdio.h;
有三個標準輸入/輸出是標準I/O庫預(yù)先定義的:
stdin標準輸入;
stdout標準輸出;
stderr輸入輸出錯誤。
參考資料:printf-百度百科
scanf-百度百科