C語言中s i混淆了。求教,在C語言中s i 和s i i 的區別

時間 2021-08-30 10:29:04

1樓:匿名使用者

按照運算子的優先順序,原式可寫為s+=(i++)。i++是在運算後才進行自增,因此s=0+1=1;i=1。

同理:第二步的s=1+1=2。

2樓:匿名使用者

s+=i++ 就是s=s+(i++),先運算後自加,即i先與s相加之後i再自加,所以s的值為1.

3樓:匿名使用者

s=1i++的意思是先使用i的值然後再自加1++i的意思是i先自加1然後再運算使用

s+=1的意思是s+1的運算結果賦給s

所以s+=i++ 之後 s=1 i自加1等於2 執行第二次同樣的運算的話 同理s+=i++

第二次s為2 i=2

絕對正確

4樓:思念天涯

i++表示的是,先引用,後自加;s+=a等價於s=s+a,所以,應該是這樣算才對,先引用i=1,然後s=s+i,s=0,i=1;所以最後s等於1;引用第二次後是i=2了,s等於1,加加起來就是s=2+2=4;一次類推,第三次就是s=7了,我上司這樣理解的,i++才是先自加,後引用。

5樓:匿名使用者

i=i+1可以變為i++.

假如s=0,i=1,s+=i++之後s = 1,i = 2 。

如果再執行一遍s+=i++之後s = 3, i = 3。

原因是『+=』屬於賦值運算子,由於運算子的優先順序,會先執行s=s+i,然後再執行i++

6樓:周可可

分為s=s+i,然後i++;如果s=0,i=1,執行之後就是s

=1,i=1

7樓:伍驪桖

s=0,i=1

s+=i++

s = 1;

這個程式是這樣執行的s先與i相加把值賦給s然後i再自加

8樓:匿名使用者

s+=i表示s=s+i,s+=i++,先進行s=s+i,得s=1,i=1,再i自加,得i=2

9樓:匿名使用者

s=0,i=1,s+=i++執行後 s = 1,i=2

在c語言中s[i++] 和s[i] i++的區別

10樓:魂夢藍

用生活中的數學來講就是

第一種相當於:

x=1+1

第二種相當於:

x=y+1

y=1兩種結果一樣,第二種不過是繞了個圈子,把結果賦值過去了希望能幫到你

11樓:匿名使用者

沒有什麼不同啊!都是將i使用之後再加一,對於陣列元素s[i++]和s[i]是相等的。s[i++] 只是比

s[i] i++寫法上簡單一點,其實功能是一樣的。

12樓:水清寒

沒區別 都是計算了s[i]的值,然後i+1

c語言中s*=i 什麼意思

13樓:成都

這裡來就是考察你對後置++。

前置++/-- ,先源做自加、減,在執行。例如int i = 0;

int j = ++i +2 ;// i先做加法,在加2賦給j ,即 j=3,i=1

後置++/--,先執行,在做自加、減。例如int j = 0;

int i = 0;

s[j++]=s[i];// 將s[0]賦值給s[0],然後,j加法處理,j=1;

14樓:匿名使用者

s*=i; 意思是s*i然後把結果再賦值給s...也就是s=s*i;

其它符號如:+ - / 類似運算語句也是一樣的意思

15樓:匿名使用者

如果s[i]

取值為 『0』 -- 『9』

s[i]=s[i]-'0'

執行後結果為s[i] 等於 0 - 9

16樓:若相惜s莫相離

s=s*i 類似的,a*=b等價於a=a*b

c語言中c[s[i]]++是什麼意思,詳細點哦,謝謝!

17樓:匿名使用者

c陣列中bai的第s[i]下標

的值自du加;例如

:zhi

int s[5]=;

int c[5]=;

int i=2;

s[i]=3; //s陣列dao裡下標為2的值為專3c[s[i]]=4 //c陣列裡下標為3的值為4c[s[i]]++等於4+1 //所以得屬出這行注意:上面的格式只為好理解,不是正確的**寫法

18樓:匿名使用者

i是一bai個整數,

s是整du

數陣列,

c也是整數陣列

s[i]是s陣列中第zhii-1個元素

值,dao則s[i]也是整數,所以

專c[s[i]]是數屬組c中第s[i] - 1 個元素值最後c[s[i]]++是將c[s[i]]自增1,也即將c[s[i]]+1的值還儲存在c[s[i]]中

19樓:匿名使用者

問題太不清楚了吧

字面上的樣子等價於

int x = s[i];

c[x];

++c;

20樓:匿名使用者

for(i=0;i<12;i++)c[s[i]]++;

當源i=0時,就是c[1]++ //因為s[0]=1;

當i=1時,就是c[2]++ //因為s[1]=2;

後面同理

#include

main()

,c[5]=,i;

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

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}執行一下就明白c[s[i]]++的意思了

21樓:副部v觀後感

最後是怎麼得出4,4,3,2的呢?

c語言中*(s+i)!='\0' 是什麼意思?

22樓:匿名使用者

\0是字串結尾的標誌,這裡是在判斷字串是否到了最後(結尾)

23樓:匿名使用者

每個字串都以'\0'結尾,*(s+i)表示字串第i個字元,所以*(s+i)!='\0'判斷是否到結尾。

100表示數內組c的大小,可以根據你的字元長容度改變。100表示可以輸入100個字元。

可以不用陣列,比如c++的string,就是動態的字串,長度不用限定。

24樓:匿名使用者

在*(s+i) != '\0'這個表示式抄中,s為char *型別的bai指標,或一維陣列的陣列名。 i為整du數數值。

當然,也可zhi能是反過來,i為char *, s為int。 不過在daoc語言的命名時,將s定義為字串(string), i定義為整型(int)是常用的做法。

於是這裡,*(s+i)就是取s上第i個元素的值,等同於s[i]。

'\0'為轉義字元,其ascii碼值為0,在c語言中,是約定的字串結束符。

!=代表邏輯不等於運算,當!=兩側值相等時,值為假,否則值為真。

於是,這個表示式就是判斷s上第i個元素是否為字串結束符,如果是則表示式為假,否則表示式為真。

c語言中,t[i++]=s[j++]是什麼意思啊

25樓:香蕉

i++ 是先呼叫i的值,然後i自加1

若i=2,i++=3

t[i++]=s[j++]是將陣列s[i]的值賦給t[i]然後i,j 在自加

c語言voidmain在很多c語言中main前沒有為什

天河流紋石 c99規範要求main函式返回值必須是 int。但有些編譯器允許非標準的寫法,而且有一大批程式設計師不這樣寫。在應用角度來看,問題不大。但在原始碼規範上看,建議最好寫上。這就好比生活中,人們的口語總是有語病的。比如 你走先。這麼說,別人能聽懂 但要規範的話,還是要遵循語法。說成 你先走。...

在c語言中如何輸出空格,在C語言中如何輸出空格

向日葵一樣暖 c語言輸出空格的語句為printf 為轉義字元,用printf 是不能輸出空格的。printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 格式輸出,它是c語言中產生格式化輸出的函式 在 stdio....

c語言中extern是什麼意思,在C語言中標頭檔案的extern是什麼意思呢?

extern 宣告的函式是在外部定義的函式例項,最常見的就是通過extern定義在win32 dll定義的非託管函式。 取經人取經 就是全域性變數的意思,在建立工程的情況下,其他檔案也可以呼叫這個變數。 陳振龍 用了extern,就表示這個變數是全域性的和動態的,不存在使用哪一個的問題.比如3號檔案...