1樓:匿名使用者
a[i]-1取得a陣列的下標為i的元素的值,然後再減去1
a[i-1]取得a陣列下標為i-1的元素的值
2樓:匿名使用者
a[i]-1表示陣列a下標為i元素與1的差值
a[i-1]表示陣列a下標為i-1元素的值
3樓:匿名使用者
i++和i--的區別:
1、運算方式
i++屬於自增運算,相當於i=i+1;
i--屬於自減運算,相當於i=i-1;
2、值的變化:
假設i=10,分別執行i++、i--後;
i++後:i=i+1=10+1=11;
i--後:i=i-1=9。
擴充套件資料:
無論i++,還是i--,這兩個公式既可以單獨存在,也可以賦值給另外的變數。當賦值引用的時候,他們的含義:
1、i++,先引用i的值,後增加i的值,
如int i=10;
int a=i++;
該程式執行後,a=10,而i=11。
2、i--,先引用i的值,後i的值減1。
如int i=10;
int a=i--;
該程式執行之後,a=10,i=9。
除了以上的用法外,還有一種表示法是++i或者--i,這種表示法i的值也會相應的自增1或者自減1,i的結果和i++與i--是相同的,但是當賦值給另乙個變數時,對賦值的變數,結果卻存在差別,因為++i代表先增加,後引用,--i代表先減少,再引用。
例如同樣的程式,i=10,
如果int a=i++,那麼a=10;而int b=++i的話,b=11;
如果int a=i--,那麼a=10;而int b=--i的話,b=9。
c語言中a表示乙個陣列,a[i++]與a[++i]到底有什麼區別?
4樓:l語言之父
a[i++]和a[++i]的區別:
相同點:i都加1,都使i的值變成下乙個元素的序號。
異同點:a[i++]中i++是後自增,必須先使用當前元素的值再使用下乙個元素的值,a[++i]中++i是前自增,可以直接使用下乙個元素的值。
例子:# include
int main ()
;int i = 0;
printf("%d\n",a[i++]);//本輸出的值為1,因為是i++,所以是先使用a[0]的值,再加上1,即先輸出a[0]的值。
i = 0;
printf("%d\n",a[++i]);//本輸出的值為2,因為++i,所以直接使i加1,即輸出a[1]的值。
return 0;}
5樓:匿名使用者
舉個例子給是說吧
int narray[4] = ;
int i = 0;
int a = narray[i++];
i = 0;
int b = narray[++i];
//上面這個例子中,最後 a = 7,b = 4,//i++ 是使用i的值,然後使用完以後再自增1//++i 是先把i自增1,然後再使用i的值//所以a = narray[i++];就相當於a = narray[i]; i = i + 1;
//b = narray[++i]; 就相當於 i = i + 1; b = narray[i];
//這麼說你應該明白了吧
6樓:倒霉熊
a[i++] 相當於 a[i] i=i+1a[++i] 相當於 i=i+1 a[i]也就是說 乙個先
使用i的值,然後改變i的值,乙個先改變i的值,然後使用i的值。
例如 如果一開始 i=3 則 a[i++] 就是 a[3] 而 a[++i]就是a[4]
c語言的a[i]和i[a]為什麼是一樣的???
7樓:莊政警
在訪問陣列元素時,c語言把a[b]解釋成*(a+b)
那麼a[i]就是*(a+i),i[a]就是*(i+a), *(a+i)和*(i+a)當然是一回事了
8樓:匿名使用者
怎麼可能一樣?!!!
c語言中,&a+1和&(a+1)的區別是什麼
9樓:匿名使用者
語句中,b = *a+1 -- 指標a 指向的數值加1,*a 是數值, b 等於 那個數值 加 1。
或 把a看成陣列元素 b = a[0] + 1;
*(a+1) -- 指標 (a+1) 指向的數值b = *(a+1) -- 可以看成陣列元素 b = a[1];
10樓:匿名使用者
a是指標?是的話,&(a+1)就是a指標指向的地方+1(型別)的位置;若是指向的是陣列的話,&a+1就是增加整乙個陣列的位址了。比如int b[8],*a=b,&a+1就是增加4*8=32個位元組了。
11樓:聽不清啊
c語言中,
"a"佔2個位元組,乙個'a'和乙個'\0'(字串結束符),它是乙個字串。
'a'就只佔乙個位元組,即單個字元'a',它是乙個字元。
12樓:匿名使用者
c語言為了使寫法更方便,單條語句更簡短,增加了縮寫形式。
這兩種方式是一樣的,沒有任何區別。
除此之外,還有a *= 1,a %= 1,只要是操作符都可以。
13樓:我是你0爸
呃,,,樓上的各位都沒有答到本質上 從本質上講,「a」是乙個指標常量,而'a'則是乙個數值。也就是說,在編譯器看來,「a」的值是乙個位址(比如:0x84f39ea0),而'a'的值則是a的ascii碼(即97)。
樓主用printf列印這兩個值看看就知道了 另外,當「」裡的字串有多個字元時,它指向字串的第乙個字元。
14樓:匿名使用者
&a+1是a的位址加上1,&(a+1)是(a+1)的位址
&是位址運算子和引用運算子
15樓:匿名使用者
注意,後者是非法的。
16樓:匿名使用者
int b[2];
int *a;
a=b; //a指向陣列b首位址,暨b[0]的位址*a + 1 // *a就是取a指向位址的值,暨b[0],所以*a+1 == b[0]+1
*(a+1) // a+1,指標+1,就是指標指向下乙個位址,暨b[1]的位址,所以*(a+1)== b[1]
17樓:燕清揚
例如a=2;
a++;輸出結果為2;但是記憶體中它的值自加1了。(先輸出a再運算)例如a=2;
++a;輸出結果為3;記憶體中也是3.(先運算a再輸出值)。
例如a=2;
a+=1;意思等同於a=a+1;
18樓:匿名使用者
取a的位址加1
取a+1的位址
19樓:認不倒你
&a+1 :a的下乙個位置的指標
&(a+1): 錯誤
20樓:
事實上是一樣的
a>>=1的意思就是a>>1並賦值給a;
可能執行的效率會有錯
21樓:曉呈呈
a++ 先取值再自加
++a 先自加再取值
a+=1 等同 a=a+1
22樓:匿名使用者
這裡的a=&a[0][0];
a+1=&a[1][0],也就是過了乙個a[0][1],因此是加了8個位元組
&a+1是跳過整個陣列的位址,也就是加了16位元組
23樓:匿名使用者
a是相當於a[0][n]
a+1是a[1][n]
n是幾就差n*4個位元組嘍
a就是陣列首位址位址
c語言。為什麼答案是a?&a[i+1]在這是什麼意思? 10
24樓:匿名使用者
這個程式的功能是從i=0開始迴圈,順序讀取字元,當字元為空格時,就把空格後面的所有字元(直到'\0')複製到開始的位址,然後令i=0,再次從開始順序讀取字元,以此類推。
第一次迴圈到how後面的空格,把後面的are you!複製到開始的位址,i=0,再從開始執行迴圈。此時a變成are you!
第二次迴圈到are後面的空格,把後面的you!複製到開始的位址,i=0,再從開始執行迴圈。此時a變成you!
後面沒有空格了,輸出字串。就是you!
&a[i+1]是每次迴圈後空格後面第乙個字元的位址,每次都從這個位址開始,把以後的所有字元複製到開始的位址。
25樓:追心者
&a[i+1] :空格後第乙個字元元素的位址
程式執行時每次遇到空格,便用空格後面的字串將之前的內容覆蓋,直至遇到/0結束
所以答案就是you!
在Excel中A 1和A1的區別是
第七次要分 美元符號 在公式中的作用是鎖定,鎖定分為三種 全鎖定 a 1 橫豎拖動公式,都不會變化,一直都引用 a1 數值 鎖定列 a1 公式橫向拖動時引用不變,但豎向拖動時,一次變為 a2 a3 鎖定行 a 1 公式豎向拖動時引用不變,但橫向拖動時,一次變為b 1 c 1 a1是相對引用 a1絕對...
微控制器c語言中定義,微控制器C語言中 定義a1 P0 1 a2 P0 2 a8 P0 7 b P2 0 。a1 a8不斷隨機為1。
這樣實現 sbit p20 p2 0 char consum 0 char i,bitflag 0x01 for i 0 i 8 i if consum 3 p20 1 希望我的回答對你有幫助,有什麼問題歡迎一起 謝謝。 如果是c51微控制器 include void main 如果找完一次p0口後...
c語言中p和p1有什麼區別,C語言中p 和p 1有什麼區別?
第一句應該是p p 1吧。這2句的結果是一樣的,相信樓主也是知道的,都表示p 1然後結果儲存在p中。但是所有的研發還是實驗,如果碰到自加1的運算都會選擇p 這裡面的關鍵點是p 的運算速度比p p 1快,雖然一條語句說快能塊多少呢?但是運算步驟少,不僅僅是提高速度,而且可以減少出錯的機率,這對於工程來...