亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

引用數組元素的方法的問題

引用數組元素的方法的問題

C
往事不追 2016-08-16 10:51:15
main(){int i;int a[10];int *p=a;for(i=0;i<10:i++)????{????*p=i+1;printf("a[%d]=%d\n",i,*p);p++;????}}?*p=i+1; 我理解是把i+1賦值給數組a,但不能理解作用是什么。想問這一語句大家怎么理解?作用和含義是什么?
查看完整描述

6 回答

已采納
?
快樂的時光

TA貢獻79條經驗 獲得超48個贊

http://img1.sycdn.imooc.com//57b3e2c20001510325921936.jpg(null)
我用圖示給你解答。希望能夠幫到你

查看完整回答
2 反對 回復 2016-08-16
點擊展開后面1
?
應龍

TA貢獻11條經驗 獲得超8個贊

p指的是數組a的首地址,*p指的是a[0],p++就是數組后一個元素的地址,*p就變成a[1]依次類推。學匯編數組運用就懂深了。

查看完整回答
1 反對 回復 2016-08-17
?
凌小天3635910

TA貢獻17條經驗 獲得超13個贊

main()
{
????int?i;????????????????//創建控制變量i
????int?a[10];????????????//創建整形數組a,大小為10
????int?*p=a;?????????????//創建整形指針p,并將數組a的首地址賦值給p
????for(i=0;i<10;i++)?????//建立一個循環,次數為10次
????{
????????*p=i+1;???????????//向p所在的地址賦值,值的大小為i+1
????????printf("a[%d]=%d\n",i,*p);????????//輸出數組標號和對應值
????????p++;??????????????//讓p指向下一個地址
????}
}????????????????????????//整個過程就是對數組a賦值1~10;。

輸出結果為:

a[0]=1;

a[1]=2;

a[2]=3;

a[3]=4;

a[4]=5;

a[5]=6;

a[6]=7;

a[7]=8;

a[8]=9;

a[9]=10;


查看完整回答
1 反對 回復 2016-08-16
?
wooviet

TA貢獻6條經驗 獲得超5個贊

最后的結果也就是a[0]=1,a[1]=2……

這里p是一個指向數組首地址的指針,所以*p=i+1的意思就是a[0]=i+1,要知道a就代表的是數組的首地址,也就是說數組名就是數組首地址,由于數組在內存中的空間是連續的,所以,p++就代表p這個指針依次指向數組的下一個元素,也就是說這個程序用p這個指針依次指向數組每一個元素,然后每個元素都被依次賦值為i+1。

這樣說請問你聽懂了嗎?

查看完整回答
1 反對 回復 2016-08-16
  • 往事不追
    往事不追
    雖然后來自己也想明白了,但是還是謝謝你很認真的解答。
?
Yexiaomo

TA貢獻152條經驗 獲得超157個贊

因為 int *p = a ;? ?// 等價于 int *p = &a[0];

//?p 指向 數組 a[10] 的 首地址 也就是 a , 也就是 a[0] 的地址

*p = i +1 ; //等價于 a[0] = i +1; ? ? ? ? ?( ?*?號的意義 應該知道吧)

p++; //因為數組的地址是連續的, 所以 p++ 使 p 指向了 數組下一個元素的地址;也就是 a[1];

以此類推




查看完整回答
1 反對 回復 2016-08-16
?
黑馬程序員3386844

TA貢獻4條經驗 獲得超2個贊

簡單的要死的東西就是判斷真假小學生3小時就會

查看完整回答
反對 回復 2016-08-16
  • 6 回答
  • 0 關注
  • 2198 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號