c語言中表示式必須是可修改的左值是什麼意思

2022-03-02 14:09:08 字數 2766 閱讀 9649

1樓:匿名使用者

意思是賦值號左側的是隻能是變數,不能是表示式。

通過變數名來訪問變數,是一種「相對安全」的方式。因為只有你定義了它,你才能夠訪問相應的變數。這就是對記憶體的基本認知。

但是,如果光知道這一點的話,其實還是不知道記憶體是如何存放變數的,因為底層是如何工作的,依舊不清楚。

要繼續深究的話,就需要把變數在記憶體中真正的樣子是什麼搞清楚。記憶體的最小索引單元是1位元組,那麼你其實可以把記憶體比作一個超級大的「字元型陣列」。陣列是有下標的,我們是通過陣列名和下標來訪問陣列中的元素。

那麼記憶體也是一樣,只不過起了個新名字:地址。每個地址可以存放「1位元組」的資料,所以如果我們需要定義一個整型變數,就需要佔據4個記憶體單元。

其實在程式執行的過程中,完全不需要變數名的參與。變數名只是方便進行**的編寫和閱讀,只有程式設計師和編譯器知道這個東西的存在。

而編譯器還知道具體的變數名對應的「記憶體地址」,這個是我們不知道的,因此編譯器就像一個橋樑。當讀取某一個變數的時候,編譯器就會找到變數名所對應的地址,讀取對應的值。

2樓:渺雪峰

意思是賦值號左側的是隻能是變數,不能是表示式。

不能給常量賦值,不能給表示式賦值。

純手打,望採納、

i++是什麼意思

3樓:匿名使用者

i++和++i的意思分別是:

i++ :先引用i的值,後增加i的值;

++i :i的值先增加,後引用i的值

換句話就是:

i++ : 先在i所在的表示式中使用i的當前值,再讓i加1。

++i : 先讓i加1,再在i所在的表示式中使用i的新值。

無論i++還是++i,都可以讓i的值自增,但是對於引用它們的物件來說,意義卻是不同的,這主要取決於++和i的相對位置:

++在i前面,i先加1,然後在表示式中用i的值;++在i後面,先在表示式中用i的值,然後i再加1。

4樓:韓苗苗

++i 和 i++在單獨使用時起到的作用就是 i=i+1,即後一個值是前一個值加一。

++i是使用i之前先使i加一。i++是使用i之後再加一。如果不能理解,那麼可以理解為:++i是先計算,再操作,i++是先操作,再計算。

例如:a = ++i,相當於 i=i+1; a = i;  a = i++,相當於 a = i; i=i+1;

擴充套件資料

「++」符號是程式語言中的自增運算子,作用是在執行後將變數的數值自動加一,「++」符號所處的位置不同,運算規則也不同,當「++」放在變數前方時,如 ++i,此時的作用是先將i變數中的數值進行加一運算,然後再將運算後的數值加入運算,而i++是先將i中的數值加入運算,然後再自加一。

i++的用法:

class yanshi}//輸出是 i = 3

class yanshi_01

}//輸出i=4,j=3

5樓:小小芝麻大大夢

"++"是c和c++裡的自增運算子。其中:

++i是使用i之前先使i加一。i++是使用i之後再加一。如果不能理解,那麼可以理解為:++i是先計算,再操作,i++是先操作,再計算。

i++ 等價於 i=i+1,i-- 等價於 i=i-1。

相似的++i 等價於 i=i+1,--i 等價於 i=i-1。

6樓:瘋飆單車

一直以來,++ --語法浪費了太多人的時間。說句實在話,++ -- 在c語言中其實是一個很細節的語法,除了表達簡練外,真的沒有什麼其它的好處了。

由於中國的c語言教程長期以來被譚浩強主宰,而譚又錯誤的把++ --作為一個c語言重點來教,並增加了一些難點,把本來很簡單的語法,搞得複雜無比!

簡單的來說,++i 和 i++,在單獨使用時,就是 i=i+1。

而 a = ++i,相當於 i=i+1; a = i;

而 a = i++,相當於 a = i; i=i+1;

如果實在搞不明白++ --怎麼回事,那也不是什麼天塌下來的事。

因為a=++i完全可以寫成 i++; a=i。

a=i++完全可以寫成 a=i; i++。

而且,這也是一種好的程式風格:++ -- 語句如非特殊需要,請單獨一行使用。

7樓:匿名使用者

i++就是相當於i=i+1他這個兩個公式是相等也就是簡寫方法

8樓:匿名使用者

樓上的差矣,語法沒錯,但是:

i++ ++i 在程式設計實際當中確實沒有那麼複雜,因為你搞不清的時候最簡單的應對方法就是:不用。譚書上那些教條的難點確實沒有什麼實際意義。但是這個運算子是很重要的。

同樣是讓 i 加 1。

i++ 的執行效率要遠高於 i += 1,i += 1 也要高於 i = i + 1。

編譯器在編譯的時候,它會被優化的。這很重要。

9樓:

i++是自加運算

等同於i=i+1

區別在於, 這樣的語句:i=0;s=i++;

自加運算會先進行,然後執行其他運算, 結果就是s=1,i=1;

還有一種自加運算: ++i

這種事先進行其他運算,然後進行自加

同樣是剛才的語句,稍作改動: i=0;s=++i;

執行過後結果是 s=0;i=1;

10樓:匿名使用者

i++是執行過i以後i+1,++i是執行i以前i+1,就這麼簡單,另外i++比i+=i或i=i+1寫起來也省事呀:)

c語言題whilee中表示式e等價於a

while 語句中的邏輯表copy達式成真才執bai行。是反的意思du,後面的邏輯表示式應zhi該是假的,所以e應為dao假,c中表示式是0才是假,所以e 0.a 是對的。b e 0 與題中要求e 0矛盾 c e 1 與題中要求e 0矛盾 d e 1 e 0時也對,但其它不是1的數都對,與題中要求只...

C語言環境中,表示式9883198a的值為

a 的ascii碼值為97,所以98 a 1,那麼 連線起來的所有值都為真,所有結果為真,也就是為1 這是c語言中的與運算,98 a 1,所以98 8 31 98 a 的值為1 c語言只要數值不為0就是真 那麼 你這裡的答案是 1 答案是1,c語言中 98 8 31 55是什麼意思,其值為多少?等價...

c語言中for迴圈中裡的表示式分別省略

for 單次表示式 條件表示式 末尾迴圈體 其中,表示式可以省略,但是分號不可省略。for迴圈是開界的。它的一般形式為 for 條件表示式 語句 初始化總是一個賦值語句,它用來給迴圈控制變數賦初值 條件表示式是一個關係表示式,它決定什麼時候退出迴圈 增量定義迴圈控制變數每迴圈一次後 按什麼方式變化。...