㈠ c語言中,"n"是合法的嗎
C 語言的表達式中,可以使用兩個很特別的單目運算符,這兩個運算符是:++ 、--
「++」稱為自增運算符,「--」稱為自減運算符。它們既可以出現在運算對象的前面,如++i;又可以出現在運算對象的後面,如i++。
前者稱為前綴運算符,後者稱為後綴運算符。自增運算符的功能是使變數的值加 1,而自減運算符的功能是使變數的值減 1。
例如,假設 i、j 的初始值都為 1,則執行++i 或 i++後,i 的值為 2;執行--j 或 j--後,j 的值為 0。
㈡ C語言,為什麼結果出來兩個n不同
標准C與經典C的比較
本附錄列出了標准C與經典C之間 (即Kernighan和Ritchie合著的The C Programming Language一書第
1版所描述的語言)的大多數顯著差異。標題指明了本書的哪章在討論每個標准C的特性。本附錄沒有介
紹C庫,因為它已經變化很多年了。
如果用戶的編譯器沒有聲明是「標準的」,那麼最好的辦法是查看編譯器手冊來了解此編譯器可以提
供的標准C的特性數量。事實上,所有C語言編譯器至少都可以處理一些較新的特性。
對於標准C和經典C之間的其他(不十分重要的)差異,請參考The C Programming Language一書第2
版的附錄A和附錄C。
第2章 C語言基本概念
標識符 在經典C中,只有標識符的前8個字元是有意義的。
關鍵字 經典C缺少關鍵字const、enum、signed、void和volatile。在經典C中,單詞
entry是關鍵字。
第4章 表達式
一元+ 經典C不提供一元+運算符。
第5章 選擇語句
switch 在經典C中,switch語句中的控製表達式(和情況標號)在提升後必須具有int類
型。而在標准C中,表達式和標號可以是任何一種整數類型,包括unsigned int
類型和long int類型。
第7章 基本類型
無符號類型 經典C只提供一種無符號類型(unsigned int)。
singed 經典C不支持signed類型說明符。
數的後綴 說明整型常量是無符號的情況時,經典C不提供U(或u)後綴,而且說明浮點常量作
為float型而不是double型存儲時,經典C也不提供F(或f)後綴。在經典C中,L
(或l)後綴不能用於浮點常量。
long float 經典C把long float用作是double的同義詞,而這種用法在標准C中是不合法的。
long double 經典C不提供long double類型。
轉義序列 在經典C中不存在轉義序列\a、\v和\。而且經典C不提供十六進制的轉義序列。
size_t 在經典C中,sizeof運算符返回int類型值。而在標准C中,它則返回size_t類型
值。
通用的算術轉換 經典C要求把float型運算數轉換成double型的,而且,經典C說明較短的無符號整數與
較長的有符號整數結合始終會產生無符號的結果。
第9章 函數
函數定義 在標准C的函數定義中,參數列表中含有參數的類型:
附錄 C
597416 附錄 C 標准 C 與經典 C 的比較
double square(double x)
{
return x * x;
}
經典C則要求在單獨列表中說明參數的類型:
double square(x)
double x
{
return x * x;
}
函數聲明 標准C的函數聲明 (原型) 指明了函數參數的類型 (如果需要, 也可以有參數的名字) :
double square(double x);
double square(double); /* alternate form */
int rand(void); /* no parameters */
經典C的函數聲明忽略了關於形式參數的全部信息:
double square();
int rand();
函數調用 當使用經典C的定義或聲明時,編譯器不檢查帶參數的被調用函數是否有正確的參數
數量和類型。此外,實參也不會自動轉換成相應形式參數的類型。相反,執行整數
的提升,並把float型參數轉換成為double型。
void 經典C不支持void類型。
第12章 指針和數組
指針減法 兩個指針相減, 在經典C中產生int型的值, 而在標准C中則產生ptrdiff_t型的值。
第13章 字元串
字元串字面量 在經典C中,鄰近的字元串字面量是無法連接的。而且,經典C不禁止字元串字面量的
修改。
字元串初始化 在經典C中,長度為n的字元數組的初始化式限制在n-1個字元之內(為結尾的空字元
預留空間)。而標准C允許初始化式長度為n。
第14章 預處理器
#elif、#error、
#pragma
經典C不提供#elif、#error和#pragma指令。
#、##、defined 經典C不提供#、##和defined運算符。
第16章 結構、聯合和枚舉
結構和聯合的
成員與標記
在標准C中,每個結構和聯合都有針對成員的自己的名字空間,且結構和聯合的標記
會被保存在單獨的名字空間中。而經典C為成員和標記採用單一的名字空間,所以成
員無法具有相同的名字(某些例外),而且成員和標記無法重疊。
完全結構的操作 經典C不允許對結構進行賦值、參數傳遞或函數返回操作。
枚舉 經典C不支持枚舉。
第17章 指針的高級應用
void * 標准C把void *用作「普通的」指針類型。例如,malloc函數返回void *類型的
值。而經典C則採用char *來達到此目的。
指針混合 經典C允許在賦值和比較中混合不同類型的指針。而在標准C中,可以把void *類型
的指針與其他類型指針混合,但是其他不帶強制類型轉換的混合是不允許的。類似的,
經典C允許在賦值和比較中混合整數和指針,而經典C則要求進行強制類型轉換。
598
599 附錄 C 標准 C 與經典 C 的比較 417
指向函數的指針 如果pf是指向函數的指針, 則標准C允許使用(*pf)(...)或pf (...) 來調用函數,
而經典C只允許使用(*pf)(...) 來調用函數。
第18章 聲明
const和
volatile
經典C不提供const和volatile類型限定符。
數組、結構和聯
合的初始化
經典C不允許自動初始化數組和結構,而且不允許初始化聯合(不管存儲期限)。
第25章 國際化特性
寬字元 經典C不支持寬字元常量和寬字元串字面量。
關鍵字 經典C不支持三字元序列。
第26章 其他庫函數
可變實際參數 經典C不提供可移植的方法來寫帶可變數量實際參數的函數,而且缺少…(省略號)
符號。
㈢ c語言 2個n是啥意思,換行一個不就可以了嗎
這是指換倆行,意思是輸出時中間空一行,看書的時候自己可以找個小程序試一下,希望能幫助你,滿意採納啊
㈣ C語言中連續輸入兩個換行符是什麼意思
\n\n理解為換倆行就行
㈤ C語言 如何在不使用數組的情況下 用scanf函數連續輸入n個數的
int max,min;
int m,n;
scanf("%d %d",&n,&m);
max=min=m;
for(int i=0;i<n-1;i++)
{scanf("%d",&m);
if(m>max)
max=m;
if(m<min)
min=m;
}
㈥ c語言的賦值語句可以有連續兩個等號嗎
可以的,C語言中賦值表達式的返回值會向左傳遞。也就是說a=2這個表達式的值為2。這時如果if(2==(a=2))那麼if的值為真。
也就是說a=b=c=3是合法的。但是a=b+2=9是不行的,因為9的值不能賦給2,它是個常量。
賦值運算符右側的值由表達式生成,而表達式則由文本、常數、變數、屬性、數組元素、其他表達式或函數調用的任意組合所構成。下面的示例闡釋這一點。
(6)c語言可以連續用兩個n嗎擴展閱讀:
賦值語句的形式:
1、a = 3;{賦予變數常數值}
2、b = a + 1;{將含有其它變數的表達式賦予變數}
3、N = N。
賦值語句中的數據類型
1、基本類型;
2、構造類型;
3、指針類型;
4、空類型。
㈦ C語言\b難道不能和\n連用
不是不能連用,可以連用
「\b」的意義是退格,這個退格不是說向左刪除一個字元,只是將游標左移一個字元的位置。這時候如果再輸出一個字元,則會替換原有字元並將游標右移一個字元。如果沒有再輸出字元,則原有的字元不會改變。這就是為什麼你多輸出一個空格,那個「c」就沒有了的原因。
希望能幫到你^ ^
㈧ c語言中怎麼連續輸入幾個字元串
1、首先我們新建一個dev C++的項目。
㈨ c語言輸出語句中兩個\n\n連起來有什麼用
一個\n代表換一行,兩個\n就換兩行
求採納