C語言中(sss 之間有什麼區別

2021-05-26 09:50:11 字數 3344 閱讀 7303

1樓:jiawen廖

(*s++) 解引後得到s指向位置的值,將該值作為表示式的結果,然後s指標往後偏移s++ 即s指標往後偏移*s++ 。

1、編譯器解析到*,判斷為指標運算子號,需要一個標示符或者表示式;

3、繼續解析到++,由於*與++是同一優先順序,結合性為右到左,所以等同於*(s++);

4、然後是=,判斷為賦值運算子,優先順序比++低,因此前面的部分可以直接進行計算。

2樓:姬桐類珠玉

樓上錯了,前面的s如果是變數就是值加1,如果是指標就是地址加1,後面這個是地址加1而不是指向的內容加1,因為++的優先順序高於*,但是注意兩者都是事後加!,也就是說如果是a=*s++的話那麼是先將*s的值賦給a然後地址再加1,s++也是一樣的。

3樓:植皓尾幻巧

s是指標變數嗎

假設s是指標變數,(*s++)就是s包含的指標指向的記憶體空間的值加一。

s++則是表示加上s的基型別佔用的位元組數,例如s是int型別的,佔4個位元組,s++就是其值加4個位元組。

*s++的意義和第一個相同

4樓:匿名使用者

*與++的優先順序相同,結合性都是從右向左,()優先順序大於*與++假定 int a=0,*s=&a;

*s++等價於*(s++)     是指標在自增,結果取得指標所指資料,再s+1

//執行後 a=0,s=s+1 (指標指向別的地址)

(*s)++  是指標所指資料在自增,結果取得指標所指資料,再指標所指資料+1

//執行後 a=1,s=&a

s++指標自增,不在指向變數a

c語言中(*s++)、s++、*s++之間有什麼區別啊

5樓:匿名使用者

*s++的值是執行自增運算之前s指向的字元,字尾運算子++表示在讀取該字元後才改變s的值

6樓:匿名使用者

*(s++)指標後移一個元素,並取其值

s++指標後移一個元素

*s++指標指向的元素加一

7樓:來自茅巖河雪膚花貌的薄荷草

s是指標變數嗎

假設s是指標變數,(*s++)就是s包含的指標指向的記憶體空間的值加一。

s++則是表示加上s的基型別佔用的位元組數,例如s是int型別的,佔4個位元組,s++就是其值加4個位元組。

*s++的意義和第一個相同

c語言中while(*s++=*t++)等價於什麼?

8樓:匿名使用者

*s++=*t++//這是一個賦值語來

句,返回值是源*s++因此,bai括號裡的一定是du*s

while語句的停止條件zhi是表示式

不成立。但既dao然while判斷了表示式,那表示式的結果就會被運算一次,而每運算一次會讓*s++,*t++。也就是說,在退出迴圈的時候,s和t還加了1。

但是c選項中,只有*s不為0才會讓*s++,*t++。所以最後一次沒有加。

故答案選擇b

9樓:匿名使用者

while(*s++=*t++)

這裡實現了bai四個操作。

1 *s = *t, 即將

dus指向記憶體

zhi賦值為t指向記憶體的值

dao;

2 執行回s的自加

答操作;

3 執行t的自加操作;

4 判斷執行自加前的*s值,如果*s為0,那麼退出迴圈。

可以寫成等價的for迴圈。

for(; *s; s++, t++)

*s = *t;

10樓:劉文正粉絲

因為, c它是. 如果s指向的變數為0, 那*s, 就是假.那麼*s++=*t++就不會執行.

但是, while(*s++=*t++)它是先把t自加版後的值(不清權楚是先自加還是先取值), 然後賦給*s++, 那麼*s的值就是*t++的值了, 所以while是否迴圈取決於*t++的值.

而while(*s)它明顯是取決於*s

再看c,

do while是必然先執行的, 然後再判斷是否繼續迴圈, 所以這時*s++就等於*t++了

11樓:正在輸入密碼

請問你這道題目是在哪個平臺做的

c語言中s[i]!=''&&(s[i+1]==''||s[i+1]=='\0')是什麼意思?

12樓:匿名使用者

這是兩個條件:

bai

第i(如果i從du1開始)個非空格字元

後跟一zhi個空格。

或者dao第i+1個字元是字內符串結束標記。

這條**容的意思是這兩個條件之一成立即可。

知識延展:&&:邏輯與,前後條件同時滿足表示式為真。

||:邏輯或,前後條件只要有一個滿足表示式為真。

&:按位與。

| :按位或。

區別:

&&和||是邏輯運算,&與|是位運算。

「&&」跟「|」沒有關係,在用「||」的地方一般也可以用|代替,但是用「|」的地方不能用「||」代替。

13樓:傲雪寒梅

複合賦bai

值運算子共 10種

+= 加賦值

du-= 減賦值

*= 乘賦值

/= 除賦值

%= 求餘賦值

&= 按位與賦值

| = 按位或賦zhi值

^= 按位異或賦值

<<= 左移位dao賦值

>>= 右移位賦值

構成複合賦值表示式的一般形式:

變數 雙目運算子=表示式

它等效於

變數=變數 運算子 表示式

s+=i,等價於s=s+i,使用加賦值

不但可以讓**更加簡潔,而且能提高程式的執行效,提高程式的執行速度*(s+i)就是取s上第i個元素的值,等同於s[i]。

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

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

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

c語言的a和a有什麼區別,C語言中a與a的區別是什麼詳細一點,謝謝

如果要列印的值 來是a 如printf d a 那打源印出來的只是a的值bai.但是第二次打du 印的a值就 zhi是 後的值.就是先打dao印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a...

c語言中檔案路徑和有什麼區別嗎

unix使用斜杆 作為路徑分隔符,而web應用最新使用在unix系統上面,所以目前所有的網路地址都採用 斜杆 作為分隔符。windows由於使用 斜杆 作為dos命令提示符的引數標誌了,為了不混淆,所以採用 反斜槓 作為路徑分隔符。所以目前windows系統上的檔案瀏覽器都是用 反斜槓 作為路徑分隔...

c語言中指標加不加有什麼區別,C語言指標什麼時候加星號什麼時候不加

剛開始學習 baic,同樣有這du個疑問,在網上zhi查了一下,沒 有什麼讓人一目了dao然的解釋。專用int x作為屬 例子。既然int x 只是定義了一個記憶體空間,儲存一個記憶體地址,那麼普通的int x應該也可以做到。int num 5 int x int x1 x 和 x1 同樣儲存的是 ...