c語言,字元陣列,si0和si0,有什麼區別嗎,用法上

2021-03-03 21:34:27 字數 1812 閱讀 4178

1樓:it圈新鮮事

有區別。第乙個表示陣列s第i個元素不等於0,第二個是陣列s第i個元素不為字串結束符號。

2樓:匿名使用者

二者沒有區別

因為'\0'的實際值就是0

c語言中a[i]=0和a[i]='\0'有沒有區別 10

3樓:天雲一號

a[i]=0和a[i]='\0'是有區別的,也是有相同點的,下面分兩種情況討論如下:

1、陣列a是數值型(以內int為例)容

int a[4];

a[0] = '\0';

a[1] = 0;

printf("%d\n", a[0]); // 輸出0

printf("%d\n", a[1]); // 輸出0

上面的結果是相同的,即對於數值型陣列,兩者是一樣的。

2、陣列a是字元型

a[i]=0表示將ascii碼值為0所對應的字元賦值給陣列元素a[i];

a[i]='\0'表示將結束標誌字元'\0'賦值給陣列元素a[i],即去掉i+1後面的所有元素;

char a="abcd";

a[2] = '\0';

a[1] = 0;

printf("%c\n", a[1]); // 輸出為空,因為ascii碼值為0所對應的字元為null

printf("%s\n", a); // 輸出a,因為字串到第3個字元就結束了而第二個被賦值為null(不可見),所以只輸出字元a

4樓:匿名使用者

有區別啊,a[i]=0表示等於數值0轉化為ascii碼就是48,而表示等於ascii碼的0,如果a[i]表示字元,則'\0'表示字串結束

5樓:匿名使用者

沒有差別抄,你可以試一下

#include

#include

main()

樓上說的沒bai錯,但是a[1]=0;就是把duascii值賦成zhi0。記住a[i]=0和a[i]='0'是不一樣的!!

dao!

6樓:匿名使用者

#include

main()

輸出結果為0 48 0;

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

7樓:匿名使用者

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

8樓:匿名使用者

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

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

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

9樓:匿名使用者

在*(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語言中s ii 的區別,在C語言中s i 和s i i 的區別

用生活中的數學來講就是 第一種相當於 x 1 1 第二種相當於 x y 1 y 1兩種結果一樣,第二種不過是繞了個圈子,把結果賦值過去了希望能幫到你 沒有什麼不同啊!都是將i使用之後再加一,對於陣列元素s i 和s i 是相等的。s i 只是比 s i i 寫法上簡單一點,其實功能是一樣的。沒區別 ...

c語言中字元陣列和字元指標的問題

在函式內 char陣列被定義成局 部變數,函式執行後會被系統給釋放掉。但char p 則是定義成乙個常量,程式執行完後才會釋放掉。所以在返回char p 時會返回亂碼,但 char p 則可以全部顯示出來 當然 char 也可以定義成靜態變數 這樣就可以顯示出來了不如static char p he...

c語言中a 0和a i0有沒有區別

a i 0和a i 0 是有區別的,也是有相同點的,下面分兩種情況討論如下 1 陣列a是數值型 以內int為例 容 int a 4 a 0 0 a 1 0 printf d n a 0 輸出0 printf d n a 1 輸出0 上面的結果是相同的,即對於數值型陣列,兩者是一樣的。2 陣列a是字元...