C語言中printfd,ai00有什麼用

2021-03-04 05:38:33 字數 4852 閱讀 1142

1樓:匿名使用者

你用gets讀入乙個字元陣列之後,a中儲存就是你輸入的字元的ascii碼(你可以看看ascii表),如果想以%d輸出,就需要用原本的字元減去'0'或者減去48,就可以得到實際的數字,比如說字元'9',在ascii表裡它的值為57,減去'0'或者減去'0'的ascii碼48,就可以得到實際的數字9。這種運算也經常被用到用於大寫字母的轉換,比如說ch是小寫字母,那麼ch-'a'+'a'就可以得到大寫,同樣,比如'c'=='a'+2這種也是成立的。

當然,如果你把%d改為%c,就不需要減去'0'了

2樓:三天打魚

這個'0'是字元 不是數值0 你差一下ascii字元**

或者 printf("%d",'0') 看看輸出幾

c語言中,i=*p-『0』是什麼意思

3樓:匿名使用者

該p必為乙個char型指標,若指向乙個char型變數,則表示該變數儲存的值與字元'0'的差值,若指向乙個char型陣列,則表示他指向的陣列的第乙個元素值與字元'0'的差值,並將該差值賦值給變數i。

一般情況下該語句用於將字元'0'~'9'轉換為int型資料的0~9。

4樓:匿名使用者

p是乙個指標,*p是他所指向的內容,這裡p是char 型別的指標,所以*p實際上就是乙個字元,比如'a'

'0'在這裡也是乙個字元(用單引號括起來的都是乙個字元char型)

由於對於c語言來講,字元是用ascii碼表示的,也就是說乙個字元是乙個0~255的整數,'0'的ascii碼是48,'1'的ascii碼是49。。。

所以*p-'0'實際上可以寫成*p-48

由於你的str裡面全部是字元型的數字,因此實際上i=*p-'0'實際上是把這些字元轉換成整數

比如*p指向'3'的時候,因為'3'的ascii碼是51,所以*p-'48'就等於整數3

所以整段程式的意思是吧你的乙個只包含數字的字串str中的每乙個字元轉換成整數放在a[i]中

5樓:匿名使用者

3樓ok

樓主問的就是*p指向位址的值減去'0'的ascii碼的值48,結果賦值給i

6樓:我所詮釋的

把指標變數指向變數的位址值賦給i變數

7樓:屈鸞禹迪

第一句話是錯誤的,應該為:p=

&原因是&是取位址運算子,&是變數amp在記憶體中所佔用的位址,對於乙個指標型變數而言,p是指指標變數p中儲存的位址,*p是指變數所指的位址中的資料。例如amp的記憶體位址0x1234,其中的資料是9876,那麼p表示0x1234,*p表示9876。

0&是指0和amp執行「與」操作,結果為0。

c語言中!='\0' 是什麼意思

8樓:過兒兒兒兒兒兒

!='\0'.就是執行到字串結尾時結束。

!的意思是非,亦可以理解成不。『\0』是字串的結束符號,由編譯器自動加上。

比如說,把乙個字串賦值給陣列:u8 str1=;實際上陣列str1在記憶體中的實際存放情況為: c x j r .

 2 1 i c . o r g '\0' 這後面的'\0'是由c編譯系統自動加上的。

所以在用字串賦初值時一般無須指定陣列的長度, 而由系統自行處理。 把字元陣列str1中的字串拷貝到字元陣列str2中。串結束標誌'\0'也一同拷貝。

但是……也有一些例外情況發生。比如,當陣列長度不夠。假設我們指定了陣列長度,如:u8 str1[13]=;由於字元組str1的長度為13,所以後面的資訊會丟失,即'\0'丟失。

另外,如果在給陣列賦值時,把每個字元單獨用引號括起來。也會丟失'\0'。如:

u8 str1=;如果希望陣列以'\0'結束,則要麼寫成:u8 str1=;要麼寫成(人工新增'\0'):u8 str1=;要麼寫成(故意給陣列預留乙個空位):

u8 str1[14]=;。

9樓:小莫

在c語言中,!='\0' 是沒有結束的意思。

其中,!=是關係運算號,\0(空字元)是字串的結束碼。

例如:char s = "10";

printf("%s\n", s);

printf("s[1]:%d\n", s[1]);

printf("s[2]:%d\n", s[2]);

printf("s[1]:%c\n", s[1]);

printf("s[2]:%c\n", s[2]);

char u = ;

cout << sizeof(u) / sizeof(*u) << endl;

char v = "hello";

cout << sizeof(v) / sizeof(*v) << endl;

列印結果如下圖:

擴充套件資料:

在c語言中,運算子總共包括以下十類:

1、算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2、關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

3、邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4、位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5、賦值運算子

用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6、條件運算子

這是乙個三目運算子,用於條件求值(?:)。

7、逗號運算子

用於把若干表示式組合成乙個表示式(,)。

8、指標運算子

用於取內容(*)和取位址(&)二種運算。

9、求位元組數運算子

用於計算資料型別所佔的位元組數(sizeof)。

10、特殊運算子

有括號(),下標,成員(→,.)等幾種。

10樓:靠名真tm難起

!='\0' 是沒有結束的意思。\0(空

字元)是字串的結束碼。例如:在求字串長度時,有一句是while (ch[i++]!='\0')

當字元ch[i++]不等於結束符'\0'時.字串最後都會有乙個結束符,例如,

char a[100];

scanf("%s",a);

你輸入字串china之後,那麼字串陣列中a[0]=='c',a[1]=='h'.a[5]=='a' a[6]=='\0'

11樓:匿名使用者

字串都是以'\0'結束的,如

char str[6]="hello";

而在記憶體中則是"hello\0"

即你申請了6個空間,但只能用5個,最後乙個用來放'\0'。表示字串結束。

例如下面乙個查詢str末尾的程式

while(*str != '\0')

有時也可以把'\0'直接放在字串末尾,用來表示該字串結束。如:

char str[10];

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

str='\0';

希望對你有用

12樓:雙魚婦聯鋼鐵俠

這是c語言中的if巢狀,寫成這樣你或許就認識了:

if(x

}意思就是x

如果滿足x

13樓:匿名使用者

if(z=y>0)表示:

第一步:z=y>0理解為:z=(y>0);即y>0則z=1,否則z=0

第二步: z不為0,則if的條件為真,否則為假

14樓:匿名使用者

是邏輯表示式,用於判斷變數y的內容是否為0

當y的內容為0,表示式的計算結果為真(即結果為1)

若y的內容為非零值,表示式的計算結果為假(結果為0)

15樓:匿名使用者

字元裡面的數字0

char a = 『0』;//a這個字元裡面裝的就是0當我們要把乙個字元格式的數字轉化為整型數字時,可以這樣用:

char a = '7'; int b = a - '0';//b = 7

同理·數字加『0』可轉化為字元

16樓:匿名使用者

'0'的意思就是字元0,跟'a' '#'的意思一樣。可以用來將字串形式儲存的數字(如4251)乙個乙個轉化成數字,原理就是字元'4''2''5''1'跟'0'在ascii中的值得差就是4、5、2、1,再用乙個變數number,number = character - '0' + 10 * number,就能用number儲存四千五百二十一了。

17樓:匿名使用者

!的意思是非,亦可以理解成不。『\0』是字串的結束符號,由編譯器自動加上。!='\0'.就是執行到字串結尾時結束。一般用在迴圈之中。比如

#include

main()}

18樓:紫晨心戀

'0'是字元常量,在ascii(美國標準資訊交換**)字符集中,數字『0』的**是48,運用不同的格式,其作用也不同,要求輸出值為\d型別是其值可代表為48,為\c型別時其值為0等等用法

19樓:隨楓輕逝

\0是字串結束符,!號的意思是非,既取反,如果有語句!=\0,那它的意思就是:字串沒有結束

20樓:匿名使用者

是判斷該字元是否是乙個字串的結尾

c語言中1101怎麼理解,c語言中110為什麼會是1啊,還有210為什麼是2。。請回答者說的簡單易懂點。

在c語言中是乙個取餘數的符號 在本題中1 10就是1 10後取餘數,而1不夠除以10,所以取商等於0,根據餘數 被除數 除數 商 1 10 0 1,即得餘數為一 所以輸出1 1除以10不夠除,又把1還回來了 同理,2除以10,也不夠除,所以餘數還是原來的2 1 10 0.1 請複習數學知識 是求餘 ...

c語言中怎樣跳出所有迴圈,c語言中break怎麼一次退出多個迴圈

c語言要跳出所有迴圈,可以使用goto語句。在所有迴圈外,定義乙個標識,通過goto語句直達該標識,起到跳出所有迴圈的作用。比如while 1 exit all loop 跳出迴圈後需要執行的語句 不過,在結構化程式設計中並不推薦使用goto語句,所以如果goto被禁用,有跳出所有迴圈的需求時,可以...

c語言中752,為什麼,在C語言中type怎麼使用

表示為取餘,5 10的值為0。中除數與被除數都須為整數。3 2為 1,3 2為1。取餘後的結果與被除數的符號一致。x 5 x 5 5 x 5 5 2 5 3 5 3 在c語言中type怎麼使用 typedef常用抄來自定義型別,比如 typedef int a 那麼你就可以使用a去定義int形的變數...