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是字元...