c語言 一維陣列 中 a i不明白

2021-04-21 23:05:14 字數 5061 閱讀 3317

1樓:匿名使用者

樓上的都已經說抄得很清楚了

我再狗尾襲續貂一下吧

for將i從0開始執行i=9共迭代執行10次每一次都執行一次a[i]=i

即當i=0時,a[0]=0,

當i=1時,a[1]=1,

…… 依次類推,共執行10次

使a[10]得以初始化

大概就是這麼回事了

你的想法是對的,就是這麼回事

至於那個輸出命令,剛好是原來的逆過程

先輸出了a[9]而a[9]=9這你是知道的,前面的賦值語句賦予的你要輸出單獨的字元也很簡單你把for語句去掉不給它迴圈,你隨便給個a[x]它就輸出單個字元了

2樓:匿名使用者

a[0]=0

a[1]=1

a[2]=2

就是這樣,i只是乙個數字,別以為他是陣列就有什麼不同,不同的是a這個字母,他單獨的時候代表的是乙個位址

3樓:匿名使用者

就是a[0]=0

a[1]=1

a[2]=2

a[3]=3

a[4]=4

a[5]=5

a[6]=6

a[7]=7

a[8]=8

a[9]=9

4樓:匿名使用者

在陣列裡的下標是可以用變數來表示的。

這幾句就是 :

a[0]=0

a[1]=1

a[2]=2

a[3]=3

a[4]=4

a[5]=5

a[6]=6

a[7]=7

a[8]=8

a[9]=9

5樓:5是笑了又笑

定義的時候陣列下標不能使用變數

但是使用的時候是沒問題的

意思就是將0到9分別賦給a[0]到a[9]

6樓:匿名使用者

實際上就是下面這樣...

a[0]=0

a[1]=1

a[2]=2

a[3]=3

……a[9]=9

7樓:匿名使用者

a[i]=i把下標數值作為元素值賦給各個元素

結果是1234....9的一列數

9-0+1根據售票員則本來就有10個數

8樓:匿名使用者

a[i]=i; /* 這句是什麼

bai意思 為什麼a的下標是變數dui? */沒有為什麼啊zhi,寫程式

dao的人賦專的值而已,你寫程式的時候可以根屬據實際情況賦值。

for(i=9;i>=0;i--)

printf("%d",a[i]; 表示對陣列中每個元素都進行printf

操作啊,所以當然有10了,既然用的是迴圈那麼相關操作就應該進行,迴圈所規定的步數啊!~

9樓:

意思是把下標對應的值賦給陣列對應的值,這麼說可能太複雜了,這麼說吧,這個語句的作用就是令

a1=1,a2=2……a9=9,ok

10樓:匿名使用者

可以這樣的 賦值以後

a1=2

a2=2

a3=3

....

c語言陣列中a[i]=i是什麼意思

11樓:

第一次迴圈:a[0]=0;

第二次迴圈:a[1]=1;

...............................

一直到第9次迴圈:a[9]=9;

就是這麼簡單的給陣列賦值!

12樓:匿名使用者

對陣列a[10]的第i個元素賦值為i,

13樓:匿名使用者

a[i] 中的 i 由for迴圈決定,依次等於0,1,2,3,4,5,6,7,8,9,10

14樓:匿名使用者

即 a[1]=1 a[2]=2 a[3]=3 以此類推,明白?

c語言中一維陣列a[i]的位址到底是a+i還是a+i*sizeof(int)?

15樓:

如果a是int型陣列來,設a的地自

址是0,由於int是4位元組,那麼a+2就是位址8;編譯器把a+2自動理解為a+2*sizeof(int),如果寫成a+2*sizeof(int),那麼上例中的位址就是32(因為a+2*sizeof(int)=a+8,編譯器理解為a+8*4)而不是8了。所以a+2和a+2*sizeof(int)絕不是同一位址。也可以這樣說,寫a+2,編譯器認為是a+2*sizeof(int);而如果寫a+2*sizeof(int),則編譯器認為是a+2*sizeof(int)*sizeof(int)!

16樓:匿名使用者

試試不就知道了?編譯器會根據元素型別來決定步長.

#include

int main (void)

我的內結果是一樣的容.

17樓:匿名使用者

a+i*sizeof(int)

i 表示移動i個單位。。。單位大小取決於指標型別

c語言中a+i是位址嗎,書上說a+i是a[i]的指標,既然這樣,那麼*(a+i)為什麼還是

18樓:

a+i其實就是&a[i],肯定是位址

*(a+i)其實就是a[i],如果a是二給陣列的陣列名,a[i]就肯定是位址(等同於&a[i][0]),如果a只是一維陣列(指標陣列除外)的陣列名,a[i]就不是位址(原因是:二維陣列可以看作是多個一維陣列組成,即陣列的陣列)

*(a+i)+j就是&a[i][j],如果陣列a是二維陣列那就肯定也是位址啦

a[i][j]則是表示為*(*(a+i)+j)

19樓:匿名使用者

a應該是指的陣列名字吧

你首先應該知道陣列名字本身就是位址了

a+i是說a的位址向後在移動i個位置

也就是a[i]

a是指的陣列的首位址,開頭的位置

*(a+i) 也就是*a[i] 也就是a[i]的位址,只是這個位址離首位址偏移了i位置

再加上j 就是 a[i][j]位址

*(a+i)+j是針對二維陣列來說的,也可以說是特殊的一維陣列。

20樓:賽罡諫陽澤

是位址,你要取值是要*(

*(a+i)+j)的

*(a+i)其實就是a[i][0]的位址

c語言中a[++i]=是什麼意思?

21樓:四捨**入

a指的是陣列,在括號裡的,是乙個自增自減運算子。

如果讓i等於3,回a[++i]的結果是a[4].

但如果是a[i++].那麼結果是a[3].

第乙個式子,是在答本身這個語句中i的值加一,然後再運算。

而第二個式子,是用其本身的值去運算,然後再下乙個句子的時候再加一。

22樓:漫遊靜心

a指的是bai陣列。在

括號裡的,是一du個自增自減運算zhi符。dao如果讓i等於3,a[++i]的結回果是a[4].

但如果是a[i++].那麼結答果是a[3].

第乙個式子,是在本身這個語句中i的值加一,然後再運算。

而第二個式子,是用其本身的值去運算,然後再下乙個句子的時候再加一其實不難,好好理解就好啦

23樓:

滿意的話,只bai求速採du納

給你舉zhi

個例子:dao

int a[4]=;

int i=3;

a[i--]=9; 此時陣列變為內 1,2,3,9 i值變為2a[i--]=9;

可以分解

容為:a[i]=9;

i=i-1;

24樓:匿名使用者

a[++i]=1等價於——「i = i + 1; a[i] = 1」

a[i++]=1等價於——「a[i] = 1;i = i + 1;」

25樓:

如果現在 i=2; a[++i] 就是 a[3]; 賦值給 a[3];

++i 是字首 加加,所以要先增1。

26樓:深魚兒

if i=8;

a[i --] 就是a[8] ~~

i --就是 先用i , i再減去1~~

27樓:

先把i加一,再給a[i]賦值。

28樓:匿名使用者

首先你要明bai白什麼是表示式,du還有變數

。a是乙個變zhi量。

a++,dao++a都是a加了回1.

比如a原來是1,執行

答了a++或++a後,a變數的值就是2了

至於a++和++a的區別主要是在表示式上的區別。

++a是先執行了a加1後,參與表示式的計算。

a++是a先參與表示式的計算,後執行自加1.

比如:int a,b;

a=1;//如果你想把a的值1,付給b.那麼,但你又想使得a加1。你就可以這麼做

b=a++;//++在a之後,先把a的值付給b,然後再本身加1 。這時候b=1,a=2了。

//如果你還不懂得話。b=a++;的意思 就是b=a;a=a+1;這兩句意思

//而b=++a 就是 a=a+1;b=a;的意思

至於a++=a+a+1

好像寫錯了吧

是a+=a+a+1

優先順序等於 a=a+(a+a+1)//a+=b 是 a=a+b 的簡化

!= 不等於,是條件運算子,用來判斷真假的。

比如1!=2; 表示式的值就是假,也就是0;

c語言很多式子都是簡化的,這樣雖然可以節省**,卻比較讓人糊塗。

29樓:匿名使用者

a++就是運算後+1,在表示式裡面的時候還是a而++a就是先a+1然後代入表示式計算。

!=是不等於的意思

c語言a和a的區別搞不明白,C語言中a 與 a的區別是什麼?詳細一點,謝謝!

首先,a是乙個變數,儲存著值。bai a是常量,是du變zhi量a的記憶體dao 位址。一般的 a是用來回 賦值給指標的 答int p a 或者是作為函式的引數傳遞 位址傳遞 比如scanf中 scanf d a 如果輸出,也並不是按照你說的那樣,比如a是字元型 putchar a a是整形 pri...

C語言中,怎樣將一維陣列中的數,賦給二維陣列

可以採用兩種方式 1 按元素賦值 遍歷一維陣列,並將每個元素賦值到二維 內陣列的對應元素上容。或者遍歷二維陣列,將每個元素賦值為一維陣列對應值上。優點為操作靈活,可以按照需要任意賦值。2 當一維陣列和二維陣列型別相同,而且賦值順序與一維陣列中的儲存順序完全相同時,可以用memcpy的方式,直接一次性...

C語言如何定義一維陣列並給陣列賦值

例如 int a 10 列印該陣列 for int i 0 i 0 i printf a i 求陣列中的最大值 int max 0 for int i 0 i個陣列的平均值 int sub 0 for int i 0 i上是純手打 有段時間沒接觸c了 可能關於部分方法使用用點錯 只做借鑑 希望可以幫...