c語言表達式常量
1. c語言 什麼是表達式
C語言表達式的定義是:用C語言運算符將運算對象連接起來的式子,就叫表達式。
這里的運算對象,可以是常量、變數及其他表達式
2. C語言中的常量有那些類型
整體上分兩類,一類是整型常量,一類是浮點型常量。細致上分,整型常量還包括字元常量、字元串常量。
①. 整型常量 如6,27,-299
②. 浮點型常量 如5.43,-2.3,5.43F(單精度)、2.3f(小寫的f也可以)
③. 字元常量 如『6』,『a』,L'中'(寬字元常量)
④. 字元串常量 如「6」,「男」,「nanabc」
3. C語言中的常量有哪些類型
C語言中的常量可以分為:整型常量、實型常量和字元型常量和字元串常量,
另外還有符號常量和有名常量.、
整型,例如:-123, 0xff (十六進制), 022(八進制)
實型, 例如:3.14, 3.14f (單精), 3.14lf (雙精), 1.2e04(科學)
字元常量, 'A'
字元串常量, "abc123"
轉義字元常量 '\0' "\n"
宏定義標識符常量 #define e 2.71
程序中的 e 編譯時會被2.71 替代,
邏輯型常量 TRUE (實際上也是宏定義常量)
差不多就這幾種吧····
4. C語言中是如何定義常量的啊
我們在用C編程時有時需要定義不變的變數,即常量,有兩種方法。
例如:
定義常量PI的兩種方式:
1. #define Pi 3.1415926f;
2. const float pi 3.1415926f;
拓展材料:
常量有整型常量、浮點型常量、字元型常量及字元串常量。 『
常量定義是指定義符號常量,用一個標識符來代表一個常量,通過宏定義預處理指令來實現。
格式:#define標識符常量
由用戶命名的標識符是符號常量名。作為符號常量名,一般大寫。一旦定義,在程序中凡是出現常量的地方均可用符號常量名來代替。
對使用了符號常量的程序在編譯前會以實際常量替代符號常量。
全局變數和局部變數的區別:
5. C語言中為什麼常量和表達式不能進行自增自減運算
首先說表達式,我們要知道自增和自減的原理,從表象上看自增自減對一個變數的值進行+1或-1操作。但是深入到底層的實現原理,這兩個操作其實是對固定的內存地址內的值進行+1或-1。所以要能夠自增自減首先就要滿足有固定的內存地址,而對於表達式來說,最終表達式計算得到的結果如果不賦值給變數的話是沒有固定內存地址記錄這個值的。
再來說常量,雖然常量是有分配固定內存地址,但是常量的意義就是指『不變化的量』,所以說這是類型限定了常量是不能被改變的,如果能變,那就不是常量了。
6. c語言常量有哪些
unsigned int Offset; /*無符號整型*/
unsigned Offset; /*無符號整型,等價於上面*/
short int SmallAmt; /*短整型*/
short SmallAmt; /*短整型,等價於上面*/
unsigned short int Month; /*無符號短整型*/
unsigned short Month; /*無符號短整型,等價於上面*/
從上面的示例可以看出,當定義長整型、短整型、符號整型或無符號整型時,可以省略關鍵字int。
註明:
1.用signed對整型變數進行有符號指定是多餘的,因為除非用unsigned指定為無符號型,否則整型都是有符號的。
2.當一個變數有幾重特性時,聲明關鍵字的順序可以任意。以下幾種聲明是等價的:
unsigned long T1;
long unsigned T2;
unsigned long int T3;
unsigned int long T4;
long unsigned int T5;
long int unsigned T6;
int unsigned long T7;
int long unsigned T8;
(三)、浮點類型變數
顧名思義,浮點類型變數是用來存儲帶有小數的實數的。
C語言中有三種不同的浮點類型,以下是對這三種不同類型的聲明示例:
float Amount; /*單精度型*/
double BigAmount; /*雙精度型*/
long double ReallyBigAmount; /*長雙精度型*/
這里Amount,BigAmount,ReallyBigAmount都是變數名。
浮點型都是有符號的。
(四)、字元型變數
字元型變數中所存放的字元是計算機字元集中的字元。對於PC機上運行的C系統,字元型數據用8位單位元組的ASCII碼表示。程序用類型說明符char來聲明字元型變數:
char ch;
這條聲明語句聲明了一個字元型變數,標識符為ch。當以這種形式聲明變數之後,程序可以在表達式中引用這個變數,關於語句和表達式的知識在後面將會介紹。
字元數據類型事實上是8位的整型數據類型,可以用於數值表達式中,與其他的整型數據同樣使用。在這種情況下,字元型變數可以是有符號的,也可以是無符號的。對於無符號的字元型變數可以聲明為:
unsigned char ch;
除非聲明為無符號型,否則在算術運算和比較運算中,字元型變數一般作為8位有符號整型變數處理。
還有其他的如指針型變數,void型變數,以後再介紹。
二、常量
常量的意思就是不可改變的量,是一個常數。同變數一樣,常量也分為整型常量、浮點型常量、字元型常量,還有字元串常量、轉義字元常量和地址常量。
(一)、整型常量
整型常量可以是長整型、短整型、有符號型、無符號型。在Tubbo C 2.0里有符號整型常量的范圍從-32768到32767,無符號整型的為0到65535;有符號長整型的范圍為-2147483648到2147483647。無符號長整型的范圍為0到4294967295。短整型同字元型。
可以指定一個整型常量為二進制、八進制或十六進制,如以下語句:
-129, 0x12fe, 0177
常量的前面有符號0x,這個符號表示該常量是十六進製表示。如果前面的符號只有一個字母0,那麼表示該常量是八進制。
有時在常量的後面加上符號L或者U,來表示該常量是長整型或者無符號整型:
22388L, 0x4efb2L, 40000U
7. 當C語言中if語句中的條件表達式為常量或賦值表達式時的意義,分別舉例解釋
//我舉個例子你就明白了
//賦值運算符=運算優先順序是從右到左,然後看下面代碼
inta,b;
b=(a=1);
//編譯器編譯得到如下代碼:
mov DWORDPTR_a$[ebp],1
mov eax,DWORDPTR_a$[ebp]
mov DWORDPTR_b$[ebp],eax
①a=1
②b=a
如此推斷,(a=1)的值即a的值,而a的值為1
所以if(1)不用說了,非零成立.
那麼if(a=1)也不用說了吧?表達式的值是a,而a=1,相當於if(1),非零成立.
8. 在C語言中,什麼是常量表達式什麼整型表達式二者有什麼區別
常量表達式顧名思義表達式由常量表示,如
double
a
=
3d
+
2.1
+
sizeof(double);
整型表達式是表達式由整型數據表示.
a[n];
維大小n必須為整型,系統不會自動將一個低精度的數轉換為高精度的數,所有a[3.4]不正確,必須為a[(int)3.4]
9. c語言中表達式具體是由什麼組成的 常量也是表達式嗎
不對
1/4=0
0+2.75=2.75
1/4這個表達式中
1和4都是字面整型
那麼等到的也是整型值
0
所以
表達式應該是2.75
10. c語言中什麼是整型常量表達式
整形常量表達式指的是表達式中的操作數都是整數類型的,這里的整數類型不僅僅是int類型,還包括char,(unsigned)short,(unsigned)long等類型.整型常量表達式中的操作數在編譯時就已經確定了他的值,因此只需要關注哪些值在編譯時確定就可以了.這包括以下幾種情況:
單個字元,比如'A','a'
單個整數數字以及由整數數字構成的表達式,如123,123+345
枚舉常量
有sizeof運演算法返回的值,如sizeof(int)
NULL指針值
地址常量.如0X12345678,以及地址常量加上一個偏移
在C90和C++中,靜態數組定義時,需要提供整形常量表達式.如intA[10];因此,你可以簡單的試試用一個表達式去定義一個數組,如果數組可以正常定義,這表明這是一個整形表達式.
另外,在C中,const關鍵字並不是代表其所修飾的變數是常量.他僅僅代表const修飾的變數是read-only的,無法對他進行修改.這點與C++不同,C++中const關鍵字可以定義一個整形常量,因此
constintsize=10;
intarray[size];/*C語言中,編譯不通過,C++中可以通過*/