若有定義 int a則表示式a a的值為9請高手說明下這個過程

時間 2021-09-12 06:37:56

1樓:倒黴熊

二維陣列是按行儲存的也就是如下這樣:

a[0][0] a[0][1] a[0][2] a[0][3]a[1][0] a[1][1] a[1][2] a[1][3]a[2][0] a[2][1] a[2][2] a[2][3]而a表示的就是a[0][0]所在的地址。所以&a[2][1]-a的值為9。

2樓:陽光上的橋

請你在草稿紙上畫一個三行、四列的方格網,從左上角開始填寫編號0,0、0,1、0,2、0,3、1,1、……2,3,然後你數一下2,1的位置(從0開始剛好是第9個),所以a[2][1]的記憶體地址與a[0][0]的差是9

基礎知識:a表示a[0][0]的地址,&a[2][1]表示a[2][1]的地址。

3樓:匿名使用者

你定義了一個3行4列的int陣列,a表示a[0][0]的地址,&a[2][1]表示的是a[2][1]的地址。

4樓:匿名使用者

a表示a[0][0]的地址,&a[2][1]表示a[2][1]的地址。

二維陣列按行線性儲存。

四 若有定義: int a[3][4];則表示式&a[2][2]-a[0]的值為( d )。

5樓:

二維陣列a,3行4列,一行一行地數,a[2][2]是第10個元素。

a[0]的值即&a[0][0],所以這個表示式其實就是求a[2][2]和a[0][0]之間的距離。

因為指標之間加減以指標型別長度為單位,所以&a[2][2]-&a[0][0]的值就是計算a[2][2]到a[0][0]之間有多少個陣列元素。前面說了,是10個。

所以選d

若有定義int a =10,則表示式a+=a-=a*=a的值是多少啊

6樓:

a+=a-=a*=a的值為0

解析:左結合:先做a*=a, 因為a=10,a*=可寫為a=a*a=100 此時a的值為100

a-=a 可寫為a=a-a=0,此時a 的值為0a+=a可寫為a=a+a=0

綜上:a+=a-=a*=a的值為0

7樓:

#include

int main()

顯示的答案是 0; 連續賦值 的規則 是從右到左~我們分細點

1: a+=a-=a*=10

2: a+=a-=100

3: a+=0

4: a=0

所以答案是 0

lz 明白了嗎~~

8樓:1我不是吃貨

-80。

我想的是,從左往右算,那麼左邊的a的值是10不會變的。所以就變成了10+=10-=10*=10

10+=10-=100

10+=-90

-80嗯嗯,應該沒錯。

9樓:聽不清啊

表示式a+=a-=a*=a的值=0

10樓:好時光悄悄溜走

0是這樣執行的:

a=a*a;a=100

a=a-a;a=0

a=a+a;a=0

身為一個優秀的程式設計師

建議不要用可讀性如此低的程式

11樓:丨嗚呼哀哉

= += -= *= /= %= &= ^= |= <<= >>= 是右結合性的;

然後光看本題,題目**現了“-=”,也就是會遇到自己減自己,結果肯定是0,後面操作也是自己跟自己操作,無論如何結果都是0;

以後看到這樣的表示式,如果出現“-=”,結果差不多都是0;

若有定義:int a=2; 則正確的賦值表示式是( )。 (a) a-=(a*3) (b) double(-a) (c) a*3 (d) a*4=3

12樓:金色潛鳥

正確的賦

bai值表示式是 (a) a-=(a*3) 它等du價於 a= a - (a*3)

double(-a) 這句沒有賦值zhi. 賦值表示式dao裡,被賦值的內應當是變

量,處容於“左值”

a*3 只是乘法運算,沒有賦值操作

a*4=3 a*4 不能做左值。

若有定義int a [][3]={1,2,3,4,5,6,7,8,9},則表示式size of(a)/size of(a[0])的值為多少

13樓:十張樹

若有來定義int a [3]=,則表示式size of(a)/size of(a[0])的值為

對於一個整型二維陣列,size of(a)=9 即實際內容所佔的大小;

a[0] 是指第0行的3個元素 因而size of(a[0])=3;

最後答案就是 9/3=3;

14樓:匿名使用者

對於一個整型二維陣列,size of(a)=9 即實際內容所佔的大小

a[0] 是指第0行的3個元素 因而size of(a[0])=3

最後答案就是 9/3=3

15樓:匿名使用者

sizeof(a)=9; sizeof(a[0])=3, 故9/3=3.

c語言的題目:設有定義int a=3,b=4;則表示式a+b,a-b,a--的值為3,答案為什麼是3不明白?謝謝

16樓:匿名使用者

你是說a-- 為什麼=3是吧????

a--的職會等於a的值,也就是3,然後因為a--所以表達於以回後的a=2.

區別答--a=2,然後a=2

區別是最後新的a都會=(原來的)a-1

但是a--會等於原來a的值。

而--a會等於a-1後的值(也就是賦值後的)。

好比這題的a=3.

a--=3,a=2;

--a=2,a=2.

++的時候同理。

17樓:匿名使用者

我就知道表示式a--的值為3:因為--在後面會導致先引用再--,所以如果有:

int c = a--;則c=3,a=2。

如果是--a,則是先--,再引用。即int c = --a;則c=2,a=2.

同樣,++ 也是這樣。

18樓:匿名使用者

a--先引用,再賦值,這樣講你會清楚些;

a=a--;這個時候a就等於3,因為先引用,所以先給3,引用完後a就等於2了;

a=a;這個時候a就等於2,因為上面的a已經變成2了,再次遇到賦值語句就會置2

19樓:匿名使用者

表示式的值是最右邊的式子的值,所以是a--,是先取a的值,所以是3

20樓:迪聲

你用的c版本計算的時候結果輸出最後一個,而且因為結果應該是a--,即a先輸出結果再做減1,所以就是3了

21樓:匿名使用者

int a=3,b=4, a+b的結果是7,此時,a仍然

=3,b仍然=4.沒變

之後,下一個算式a-b結果回是-1,此時,a仍然=3,b仍然=4.沒變答

再下一個 a--, 這個的意思是對a操作後a才減1,但後面沒有有關a 的算式,因此,a的值不變,仍然是3.

此題若a--後面有a+b或其他有關a 的算式,則a的值就會減一操作,變為2

22樓:匿名使用者

我覺得應該是2啊

我執行結果就是2

23樓:匿名使用者

你能不能把題目詳細點 都沒搞懂你的意思

若有定義int a 10,則表示式a a a a的值是多少啊

a a a a的值為0 解析 左結合 先做a a,因為a 10,a 可寫為a a a 100 此時a的值為100 a a 可寫為a a a 0,此時a 的值為0a a可寫為a a a 0 綜上 a a a a的值為0 include int main 顯示的答案是 0 連續賦值 的規則 是從右到左 ...

已知定義int a 2,則表示式a a a a a的值是

這個表示式無意義,編譯器會給出警告資訊。該表示式的值與編譯器相關 非要執行,看一下這句在gcc給出的反彙編 0x401476 mov eax,0x1 0x40147b sub eax,dword ptr esp 0xc 0x40147f mov edx,dword ptr esp 0xc 0x401...

若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個

你是誰會想 表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 湯福書屋 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三...