1樓:逸帆風順
1;三目運算,因為4 > 3,所以為1
**驗證:
#include
int main()
執行截圖:
c語言中:a=(1,2,3),(4,5,6)請問a值和表示式值都是多少,為什麼?
2樓:匿名使用者
答案應該是3,原理:
優先順序是括號最大其次是賦值運算子,
然後是逗號運版算符,所以先運算:a=(1,2,3)的括號,權由於逗號運算子是從左到右運算所以值應該是3,然後再把3賦值給a,所以a值應該是3,再運算後面括號(4,5,6),值同理是6,然後整個表示式的值就可以簡化成 3,6 ,按照逗號的運算值是6,所以整個表示式值是6
3樓:匿名使用者
a=3,表示式為6
說樓主語句錯誤的那位朋友,a=(1,2,3),(4,5,6)不是乙個語句,只是個表示式而已
a=(1,2,3),(4,5,6)
→a=3,(4,5,6)
→3,6→6
4樓:匿名使用者
樓主的語句是錯誤的,應該還加上一對括號
如:a = ( (1,2,3), (4,5,6));
最終a的值是6 。
其實原理很簡單,就看看逗號表示式就好了。
逗號表示式的值就是最後乙個數或者語句的值!
c語言 若已定義:int a[3][4]={1,3,5,6,9},*p=a[2];則p-a的值是 ()?求過程
5樓:匿名使用者
p是指向陣列第三列的位址值
a是指向陣列第一列的位址值
所以 p-a 其實就是兩個位址的差值,實際就是前兩列資料所佔的儲存空間 4*2*2=8個位元組
6樓:匿名使用者
a[2]是在第三行開頭嘛,一行4個,兩行就是8
c語言 int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,則值為3的是
7樓:馮老師(必果學院
這bai是乙個指
針求du值的問題,答案zhi應該是a
答案分析如dao下:
首專先,所有的逗號屬運算子,是從左向右進行的,其值為右邊結果計算的值
a p+=2,*(p++) 先計算p+=2 再計算*p 最後計算p++ 表示式的值在第二步計算確定的 為p[2] = a[2] = 3。表示式計算完畢之後,p指向4
b p+=2,*++p 先計算p+=2,再計算++p 最後計算*p 表示式的值在最後一步確定 為4
c p+=3,*p++ 先計算p+=3,再計算*p 最後計算++ 表示式的值在第二步確定為4,而後a[3]的值變為5
d p+=2,++*p先計算p+=2,再計算*p 最後計算++ 表示式的值在最後一步確定,為4,而後a[2]的值變為4
8樓:匿名使用者
答案a.
陣列定義是a[0]=1,a[1]=2,a[2]=3, ...,a[9]=10
a. p += 2使p指向a[2], *(p++)表示先取*p的值, 然後p增加版1(指向a[3]), 所以取權得的值是a[2]=3
b. p += 2使p指向a[2], *++p表示先p增加1(指向a[3]),然後取*p的值,所以是a[3]=4
c. p += 3使p指向a[3], *p++表示先取*p的值, 然後p增加1(指向a[4]), 所以取得的值是a[3]=4
d. p += 2使p指向a[2], ++*p對*p的值增加1, 所以取得的值是a[2]=a[2]+1=4
還有一種寫法是(*p)++, 表示先取*p的值, 這個值再增加1
已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},c語言問題
9樓:匿名使用者
int (*ptr)[3]=a這句,
bai將a的首地du址賦值給了ptr,ptr表示的是zhi指向乙個含有三個int的數dao組的指標,*((ptr+1)[2])等價於*((ptr+1)+2),等回價於*(ptr+3),這表示從答
陣列a的首位址向後移動3個單位,每個單位為乙個含有3個int的陣列,所以一共向後移動了9個單位,即得出執行結果10!
要想正確表達a[1][2],應該是(*(ptr+1))[2],陣列的運算子[ ]比間值運算子*的優先順序高,(*(ptr+1))[2]表示a向後移動乙個單位即三個int,此時ptr指向4,再往後移動2個int指向6。
其實遇到這類問題畫記憶體結構圖比較容易理解了
10樓:匿名使用者
(*ptr)[3]=a,陣列
指標只有3行,陣列a有四行,所以(*ptr)[0]=,(*ptr)[1]=,(*ptr)[2]=,所以*((ptr+1)[2])表示的是(*ptr)[2]裡面的回
第二個元素就是答10
11樓:匿名使用者
*((ptr+1)[2])這種用法是不對的,陣列的下標相當與解引用,比如a[2]=*(a+2)
因此,上面的替換做法是(*(ptr+1))[2].
12樓:巫馬尓絲
*((ptr+1)[2])和copy*(*((ptr+1)+2))是等價的,而第二個算式可以演化成*(*(ptr+1+2)),也就是*(*(ptr+3))。
你既然會用指標表示陣列,那麼我用一維陣列給你舉個例子:
int arr[3];
這裡如果要表示陣列的第二個元素,有2種方式 arr[1], *(arr+1),
就是說arr[1] == *(arr+1)
那麼你*((ptr+1)[2])我們只看括號內的內容(ptr+1)[2] ,它按照上邊的等式轉化一下就是*((ptr+1)+2),去掉裡面的括號*(ptr+1+2),也就是*(ptr+3);
*((ptr+1)[2]) == *(*(ptr+3)) == a[3][0]
很好的解釋了為什麼你寫的第乙個表示式是10了,
你如果要用ptr表示a[1][2]就應該是*(*(ptr+1)+2)或者*(ptr+1)[2]這樣寫才對。
設int x1,2,3,4,5,6p x則值為3的表示式是
p 相當於 bai p 相當於 p p 而開始時p 2 所以du p a 2 3 再執行zhip 後 p指向a 3 擴充套件資料 dao c語言具有自己獨內特的特點,具 體體現在以容下幾個方面 其一,廣泛性。c 語言的運算範圍的大小直接決定了其優劣性。c 語言中包含了34種運算子,因此運算範圍要超出...
設有定義語句「int a 4123則a的值為多少?a的值為多少?能有詳細解題步驟嗎
這是乙個二 來維陣列,a 3 4 列舉出源來就是 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 0 代表第一行,a 1 代表第二行.a 1 1 代表第二行第二列的值,a 2 1 代表第三行第二列的值...
已知三階矩陣a的特徵值為123則
你好來 你寫的這個矩陣無源 法計算,如果是求行列bai式則可以。a 3 2a e的三du個特徵值是zhi1 dao3 2 1 1 2,2 3 2 2 1 3,3 3 2 3 1 20,所以 a 3 2a e 2 3 20 120。經濟數學團隊幫你解答,請及時採納。謝謝 已知3階矩陣a的特徵值為1,2...