當前位置:首頁 » 編程語言 » c語言中只能

c語言中只能

發布時間: 2025-05-04 09:19:20

1. 為什麼在c語言中,運算對象只能是整型

在c語言中,運算對象必須是整型數的運算符是:

①求余運算符%

②位運算符~、&、|、^、<<、>>。

具體原因是:

①求余運算必需是整型是因為求余是在整數除法中的運算。如圖


2. 在c語言中,指針作為函數參數,形參只能傳遞值,而不能傳遞地址,是怎麼回事

C語言中,函數參數只能傳值。與傳值對應的是傳引用,C語言不支持函數參數傳引用,C++語言才支持。
C++傳引用函數:
void foo(int& a) { a = 3; }
假如a = 2,執行foo(a)後,a = 3。
---
C語言可以模擬傳引用,方法是通過指針來實現:
void foo2(int* ap) { *ap = 3; }
假如a = 2,執行foo2(&a)後,a = 3
foo2(&a)調用本質上仍然是傳值,只不過傳遞的是指針,指針即是地址,地址本質上是一個無符號整數。
如果:
void foo3(int b) { b = 3; }
假如a = 2,執行foo3(a)後,a = 2。這是因為foo3(a)調用過程中,a值傳給形參b,修改b的值與實參a無關。
注意到,foo3(a)與上述foo(a)傳引用的調用是形式一樣的。
既然C語言通過指針可以實現傳引用調用,為什麼C++還要引入引用這個特性呢?這是因為C++引入的很多新特性需藉助引用來實現,比如,拷貝構造函數等等。

熱點內容
modely選哪些配置比較好 發布:2025-05-04 14:02:49 瀏覽:973
java編譯器在哪裡執行 發布:2025-05-04 13:42:44 瀏覽:374
我的世界海島生存伺服器 發布:2025-05-04 13:35:22 瀏覽:864
pythonsd 發布:2025-05-04 13:29:02 瀏覽:564
pythonlogging格式 發布:2025-05-04 13:18:58 瀏覽:851
起亞k3壓縮比是多少 發布:2025-05-04 13:16:56 瀏覽:539
java字元串切割 發布:2025-05-04 13:16:46 瀏覽:987
物流管理存儲 發布:2025-05-04 13:16:45 瀏覽:722
18款昂科拉哪個配置最值得購買 發布:2025-05-04 13:13:49 瀏覽:481
unbuntu18編譯vlc 發布:2025-05-04 12:52:19 瀏覽:487