關於C的指標題,高手請進,非常感謝了,很著急啊

2022-06-30 17:51:52 字數 1713 閱讀 1037

1樓:匿名使用者

int a[4][3]=; 定義乙個4*3的二維陣列,一行三個數,共四行

int (*ptr)[3]=a, /* ptr是個指標,它的資料型別為 3個int型別的整型資料 這裡將陣列a的首位址賦值給ptr,即ptr指向陣列a的第一行的首位址, ptr+1指向第二行 。。。。。。*/

*p=a[0], /* p是乙個指標,它的資料型別為 int型別的整型資料 這裡將陣列a的第一行的首位址賦值給p(其實也是陣列的首位址),即p指向陣列a的第一行的第乙個元素,p+1指向第一行的第二個元素 。。。。。。 這裡注意與前面的ptr的差別!!!*/

a[1][2]表示陣列a的第二行的第三個元素,即:6

還有乙個知識點為:陣列是一片連續的空間!

*( (p+2) +3) p指向a[0][0],p+2 + 3 ,即:從p向後移5個int,指向a[1][2]

*(*(p+3)) p指向a[0][0],p+3 即:從p向後移3個int,指向a[1][0] ,*(p+3)=4 , *(*(p+3)) =*(4)這是個錯誤的使用

(*ptr+1)+2 *ptr是第一行的位址(因為它的元素是乙個陣列型別),+1+2後還是個位址,因此,這與a[1][2](6)無關。

*((ptr+1)[2]) ptr+1是第二行的首位址,(ptr+1)[2]相當於a[1][2] , *((ptr+1)[2]) 相當於*(6) 這是個錯誤的使用

2樓:匿名使用者

正確答案是:a

int a[4][3]=;定義乙個二維陣列,四行三列

1 2 3

4 5 6

7 8 9

10 11 12

int (*ptr)[3]=a是定義的行指標,

*p=a[0],定義的一般指標

a 選項意思是第二行第三個數,指的是6,而a[1][2]意思也是第二行第三個數,指的是6,選擇a

*(*(p+3)) 項是illegal indirection,這樣的用法是不能通過編譯的

(*ptr+1)+2 項是ptr的位址加3的結果, *ptr的值等同於a[0]或者a,其值是位址。

*((ptr+1)[2]) 項是a[3][0]的值,是12,((ptr+1)[2])是指向第三行的行指標,等效於(ptr[3])或者,((ptr+3)[0])或者是a[3]

3樓:成成濟

選a,int (*ptr)[3]是指向int型陣列的指標,且陣列的元素是3個,*p是指向int型的指標。因此這兩種指標的初始化是不一樣的,而且指標p+1是移動sizeof(int)個位元組,也即乙個int型的資料,ptr+1是移動3個int型的資料,也即移動3*sizeof(int)個位元組,這正是這兩種不同型別的指標決定的。如果用p表示a[1][2]應該是*(p+5),用ptr表示應該是*(ptr[1]+2)或者*(*(ptr+1)+2)

4樓:海風

d吧,,就指標,與指標的問題,就是指向指標的指標,,,二級位址,,畫個圖就可以了

5樓:匿名使用者

a[1][2]==6

int a[4][3]= 定義的二維陣列int (*ptr)[3]=a //陣列指標*p=a[0], //普通指向int型陣列a的指標答案裡面的第乙個就是你要的答案

高一數學函式問題,高手請進,非常感謝

y 分之一 即 y 1 x 2x 3 1 x 1 4 x 1 4 0 x 3或x 1 x 3時,x增大,x 1 4 增大,1 x 1 4 減小,是遞減函式 x 1時,x減小,x 1 4 增大,1 x 1 4 減小,是遞增函式 方法 此類題,最好先求出x的取值範圍,再求出函式值y 最大值 或最小值 時...

關於煮飯做菜煲湯的。(烹飪)非常感謝

第乙個菜 涼拌蘋果花豆 材料 蘋果,花豆.調味料 紅砂糖,檸檬汁 過程 1將花豆泡水40分鐘,然後放入沸水中煮熟,撈起瀝乾備用.2蘋果削皮,洗淨,切丁,放入500毫公升水再倒入檸檬汁備用.3蘋果丁撈起放入鍋裡,加入花豆和紅砂糖,拌勻即可.第二個菜 清蒸豆腐 第三個菜 清湯大白菜 過程 用清水煮大白菜...

長期應付款的知識,請高手耐心解答非常感謝

1 分期付款1200,年供300 則年金現值為 300 p a,6 4 1039.53 裝置入賬價值 800 1039.53 50.47 1890 未確認融資費用1200 1039.53 160.47 借 固定資產 融資租入固定資產 1890 未確認融資費用 160.47 貸 銀行存款 850.47...