1樓:
要不然'\x41'怎麼叫做a的“轉義”字元!因為c規定轉義字元'\x41'中\是轉義字元引導符,後跟一個x表示x後面的數字是十六進位制表示法,用''括起來表示一位元組ascii碼。按這種解釋,'\x41'不就和0x41是一回事嗎?
它們都表示字元a或a的ascii碼值!
2樓:杳哈哈哈
\x說明的是十六進位制啊
然後4*16+1=65。a的ascii碼就是65啊。。所以輸出就是a了。
附:格式符x,功能:輸出無符號16進位制整數(無字首0x)格式符o,功能:輸出無符號8進位制整數(無字首0)
3樓:匿名使用者
那是轉義序列, 16進位制常量才用0x打頭,
c語言,十六進位制數0x開頭都對嗎?
4樓:王后
其中的x是大寫還是小寫都無所謂的不過內要注意:必須是整型常量
容才是0x(或0x)開頭如果是字元常量,應是\x開頭,如'\x41'就是表示大寫'a'用十六進位制表示整數和字元這兩者的不同,需要注意區別。
1、16進位制常數的表示,以0x或0x開頭
2、轉義字元中的16進位制數,以x開頭,不能以x開頭
3、單字元資料中,反斜槓後面跟0,若其後有0-7的數字跟隨,則表示其後的數是8進位制數,若有其它數或字元跟隨,則屬於錯誤(但編譯不一定報錯,會自動取最後一個字元)。
4、反斜槓後可以直接跟0-7間的數字,視為8進位制數,最多三個,可以少於3個。
c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
\0x41是16進位制數,字元常量'\0x41'表示什麼?
5樓:匿名使用者
大寫字元a
a的ascii碼為65,即十六進位制的41
6樓:匿名使用者
'\0x41' 沒有這樣的寫法吧
0x41是整數的十六進位制表示形式,沒有前面的斜槓\'\x41'是一個轉義字元,十六進位制形式ascii表示的字元‘\x41’表示的是大寫字母a
c語言裡 轉義字元 \0x不表示十六進位制嗎
7樓:梅南風瀋陽
數值型常量一定是數字開頭,0開始的是八進位制數,0x開始的是十六進位制數,是規定,轉義字元是以'\'開始的,其後跟著的要麼是八進位制數,要麼是十六進位制數,八進位制數以0開始,十六進位制數以x開始,這是約定俗成的東西了,我們不去討論其是否有更合理,更人性化的替代方案,只需這麼做即可。
8樓:吉祥二進位制
char a = \x7a; //直接這樣寫就可以啦。
char b = 0x7a; //直接這樣寫就可以啦。
如你所寫,就把錯啦,字元是那樣表示的嘛。別看你編譯成功了,但是有警告的: warning c4305:
'initializing' : truncation from 'const int' to 'char'
答題不容易,大家互相幫助,望採納,謝謝!
c語言,十六進位制數0x,0x開頭都對嗎?
9樓:
是的,其中的x是大寫還是小寫都無所謂的
不過要注意:必須是整型常量才是0x(或0x)開頭如果是字元常量,應是\x開頭,如'\x41'就是表示大寫'a'
用十六進位制表示整數和字元這兩者的不同,需要注意區別
c語言,轉義字元'\101'為什麼為字元a。8進位制不是0開頭嗎??
10樓:御千破鬥
不用區復分,不用轉義字元的制是十進位制,用bai‘\xhh’的就是十六進位制,du用 \加數字zhi
且數字的任意dao一位都不超過8的就是8進位制例如:‘\101’‘\010’‘\000’是合法8進位制,如上‘\080’‘\12f’等就是非法的,不是八進位制。
11樓:匿名使用者
在轉義字元中,八進位制前面的0是可以省略的,即'\101'等價於'\0101'.
但是十六進位制前面的x就不可省咯。
12樓:半吊子仙
轉義字元中,規定用 \ooo表示3為八進位制(ooo代表三位八進位制的數),即\101,\102這樣形式的,回如果用列印出來答的話,就會分別被轉義為大寫的a、b。
而十六進位制的轉義字元規定為\xhh,注意這裡的十六進位制數字只有兩位,即\x表示採用16進位制,而後面兩位hh代表16進位制的數,比如\x41,\x42,轉義後也表示a、b。
如果要表示數值的話,比如10進位制數值65,用八進位制表示就是0o101,用16進製表示就是0x42,就是說從數值上來講 0o101 = 0x42 = 65,而ascii碼錶的65代表的是a,所以,你新增轉義符後,\101 和\x42都表示a
c語言轉義字元\0xaa是什麼意思?
13樓:一籃子陽春白雪
轉義字bai符是c語言中表示字元du的一種特zhi殊形式。通常使用轉義dao字元表示版ascii碼字符集中不權可列印的控制字元和特定功能的字元,如用於表示字元常量的單撇號
( '),用於表示字串常量的雙撇號( ")和反斜槓( /)等。轉義字元用反斜槓/後面跟一個字元或一個八進位制或十六進位制數表示。 轉義字元 意義 ascii碼值(十進位制)
\056 這種形式是 8 進位制數 056 對應的字元
\x5a 這種形式是 16 進位制數 0x5a 對應的字元
\0xaa 如果看成轉義字元,只能是 字串結束符 \0, 後面的xaa 輸出時將不起字元作用。
'\0xaa' 作為16進位制數值 可看成 0x00784141.
最好不要這麼用。
為什麼16進位制的數是以0x開頭的?
14樓:馬雲飛
規定的,沒什麼大的問題,
但是也可以不要ox, 例如 a33,沒有ox表示也是十六進位制的數,加上只是為了更加 直觀的讓人知道是16進位制 的數。
15樓:
0x開頭的0x12其十進位制值是18
如果不以0x開頭 12就是12
就這點區別
如果你的常量裡面本來就有字母,如abc12d就預設為十六進位制數
16樓:
是 你看如果不是0x開頭
例如16進位制的 ab10 它是標示符還是16進位制數啊 不能分辨吧
c語言轉義字元\0xaa是什麼意思?具體講講。
17樓:金色潛鳥
\056 這種形式是 8 進位制數 056 對應的字元\x5a 這種形式是 16 進位制數 0x5a 對應的字元\0xaa 如果看成轉義字元,只能是 字串結束符 \0, 後面的xaa 輸出時將不起字元作用。
'\0xaa' 作為16進位制數值 可看成 0x00784141.
最好不要這麼用。
18樓:無敵天聖
假如是\0x開頭的話,那麼是十六進位制的字元編碼,到底是什麼編碼看系統內部怎麼實現,大部分是asc碼
假如是\0開頭的話,是八進位制形式的
C語言為什麼輸出的是7 0啊,C語言 7 0,為什麼
字元 hex dec 0 0x00 0 從數值上說上面三個是相等的 0 0x30 48 請lz注意他們的區別 你可以這樣理解strlen 函式的實現 int strlen char str 定義的x是字元型陣列名,但在c語言中字元型變數可以被賦予整形資料,字串裡遇到結束符0 0 就會結束,不管後面是...
c語言中用指標賦值字串為什麼不加如下
a cool 這是地址來賦值,將一個常量字串 自的首地址賦值給a這個指標。a cool 這是字元賦值,不是字串 雖然a叫字串指標,但char a這樣的定義,a必然是一個字元,而不是多個。因此後面的常量會被忽略為一個字元,進行數值賦值 也可以理解為拷貝賦值,區別於地址賦值 在a沒有分配地址的情況下,直...
c語言我為什麼不能直接用把字元變數的值賦值給另一
直接賦值字元變數或者相互賦值是沒有問題的,程式崩潰可能是其它原因。c語言中為什麼用巨集定義一個字元常量 一個字母 可以賦值給字元變數?1 因為巨集定義實質是一種替換,雖然看起來是字元,實際上最終是被替換成其他常熟或者值。2 巨集定義中的識別符號都採用大寫,這是程式設計中一種約定俗成的習慣 1 巨集替...