C到C 的公升級

2022-05-04 03:15:09 字數 1164 閱讀 1866

即使分配了空間也不會用儲存空間裡面的內容,只會使用符號表的值。

再舉個例子:

1 constint a=10

;2 constint b=20;3

int c[a+b];

上面的**在c中會報錯「無法確定陣列長度」,因為在c中const只是個唯讀變數,本質上還是變數,有儲存空間,定義陣列長度用變數當然會出錯了。

但在c++中卻可以編譯通過,因為c++對const做了加強,使得const是真正意義上的常量。

#define只是在編譯前(預處理)

進行普通的文字替換,沒有作用域檢查!

1 #include2

usingnamespace std;

3int

f()6

intg()

10#define b 1

11int

main()

12

這個**第4行會出錯「[error] 'b' was not declared in this scope

」,b沒有定義,說明#define編譯前進行簡單文字替換時,只替換#define 下面的所有,位於#define上面的則沒有替換。

const 則由編譯器處理,有作用域檢查和型別檢查

1 #include2

usingnamespace std;

3int

f()6}7

intmain()

8

#define可以用 #undef 限

定作用域,不過有點麻煩:

1

intg()

如:

1

intmain()

2

但c中上述**會出錯,三目運算子不能返回變數。

C到C 的公升級

c與c 的關係 1.c 繼承了所有的c特性 2.c 在c的基礎上提供了更多的語法和特性 3.c 的設計目標是執行效率與開發效率的統一 c 對c的加強 1.c 中更強調語言的 實用性 所有的變數都可以在需要使用的時候再定義 for int i 0 i 10 i c 編譯器不報錯 注意 c語言中的變數都...

c到c 的公升級

c 繼承了c的所有特性,c 在c的基礎上同時增加了許多新的語法和特性,c 的目標是實現執行效率與開發效率相統一。c 中更加強調語言的實用性,所有變數可在使用的時候再定義。例如 include int main int argc,char argv printf c d n c printf end....

C到C 的公升級

c 的加強主要表現在 型別的加強 物件導向支援 1 變數定義 c 更強調語言的實用性,所有的變數都可以再需要使用的時候再定義,c語言中的變數都必須在作用域開始的位置定義 int c 0 for int i 1 i 3 i register 關鍵字請求編譯器將區域性變數儲存與暫存器中 早期的c語言編譯...