這段c語言源程式哪裡錯了

2023-02-05 09:25:20 字數 1650 閱讀 4297

1樓:匿名使用者

指標先指向了陣列首地址,指標加1後指向陣列的下一個元素(即第一個一維陣列的第二個元素),將指標加4(4表示一維陣列的維數)後就指向第二個一維陣列的第一個元素

指標加1表示指向下一個元素

2樓:匿名使用者

首先p指向的是陣列首地址,即p現在指向的是score[0][0],指標加1以後p指向的是第一個一維陣列的第二個元素,即score[0][1],如果想指向第二個一維陣列的第一個元素的話就需要指標p+4,這樣就可以了。

3樓:csu_青苔

1、第一個一維陣列的第二個元素

2、(*score)+1:第二個一維陣列首地址3、score+1

對指標型別的運算子操作,比如+,-都進行的過載,會判斷指標的型別和級別進行運算的。

4樓:

常規的想法:

score + 1 --> score[1]//第二個一維陣列首地址

score[0] + 1 --> &score[0][1]//第一個一維陣列的第二個元素的地址

但是,這裡score是二維陣列, 你定義個一級指標來指向陣列名是不可以的,

可以有二種方案:

方案一:

int score[4]=,,},a,i;

int *p;

p = &score[0][0];

方案二:

int score[4]=,,},a,i;

int (*p)[4];//陣列指標,指向陣列的行, 注意列必須相同.

p = score;

方案一詳細**:

#include

int main()

,,},a,i;

int *p = &score[0][0];

scanf("%d", &a);

a -= 1;

for(i=a*4; i

int main()

,,},a,i;

int (*p)[4] = score;

scanf("%d", &a);

a -= 1;

for(i=0; i<4; i++)

printf("%d ", *(*(p+a)+i));

return 0;

}另外:

對於方案一:

p + 4 --> &score[1][0]//第二個一維陣列的首地址

p + 1 --> &score[0][1]//第一個一維陣列的第二個元素

方案二:

p + 1 --> score[1]//第二個一維陣列的手地址

p[0] + 1 --> &score[0][1]//]//第一個一維陣列的第二個元素

5樓:匿名使用者

#include "stdio.h"

#include "string.h"

void main(void)

,,},a,i;

int (*p)[4] = ;//修改的地方p = score;

scanf("%d",&a);

a=a-1;

for(i=0;i<4;i++)

printf("%d ",*(*(p+a)+i));

}程式可以達到效果。

希望對你有所幫助

c資料更新,這段語句哪裡錯了

這裡不支援字串 變數的方式。so你sql確實寫錯了,系統不認識。你先在前面寫一個 string sql string.format update jobzp set date date where id xxid 然後oledbcommand cmduptop new oledbcommand sq...

c語言程式設計題 要求畫出n s流程圖 寫出源程式

我用c 順手,多了不想寫就寫一個吧 版string input int count input this.textbox1.text.trim count input.length string output output for int i count i 0 i response.write o...

C語言源程式檔案經過編譯連線之後生成字尾為的檔案

如果只生成一個檔案,那麼這個題目答案是b。編譯 compile 後生成目標檔案,字尾 obj。也就是機器碼。選擇c.exe 解析如下 檔案編輯的時候原始碼是cpp副檔名,c 標頭檔案是.h副檔名。編譯源程式檔案轉換成.obj副檔名的目標檔案。連結將一個或多個目標檔案與程式用到的庫檔案鏈拉起來,形成一...