C語言裡 101 佔多少位元組??能不能詳細講解一下

2021-05-05 00:21:10 字數 5861 閱讀 4410

1樓:匿名使用者

#include

#include

int main()

這個題的執行結果是 2,1

我現在給你說下原因,這部分內容在c語言的字元常量那塊有講解。

用『\ooo』表示,其中ooo代表不超過三位的八進位制數。例如,『\101』代表的字元『a』,因為八進位制101換成十進位制就是65,ascii為65的就是大寫字母'a'。同理,『\60』代表字元『0』,因為八進位制60換成十進位制為48,所以它代表字元『0』。

說完轉移字元常量,那我們現在再來看你的那道題。

"\101"可以理解為乙個字串,編譯器在編譯時碰到反斜槓\,就會當成它為乙個轉義字元,所以它向後處理三個數字代表八進位制。

所以"\101" 就等價於 "a"。這個應該很好理解,因為是雙引號,所以它代表乙個字串(字串後面預設加 \0 ),只是這裡面只有乙個字元。

所以用sizeof操作符(計算字串長度,包含後面的 \0 )時,答案就為2

而是strlen是乙個庫函式(只計算字串長度,不包含後面的 \0 ),所以答案為1

2樓:風若遠去何人留

佔2位元組。

其中\101是c語言字元表達的8進製轉義形式。

8進製轉義規定為

1 以\開頭。

2 後續接1到3位合法的8進製值,即0~7.

對於"\101" 除\101佔一位元組外,還有隱式的字串結束符,\0.

所以"\101"佔2位元組。

3樓:

你在**裡用雙引號還是單引號?雙引號表示字串,單引號表示字元。這是有很大差別的。字元常量只佔乙個位元組。字串為它所含字元數量加乙個結束字元,這裡就是佔2個位元組。

4樓:匿名使用者

2個位元組 /10是乙個 1是乙個 /10是ascii中的乙個字元的,標準是/010

5樓:陳

乙個位元組,轉義字元佔乙個位元組

請問c語言中,』\n』是占用幾個位元組的???

6樓:小夏在深圳

\n』是兩來

個位元組。

1、如果是源char 型,那麼是占用1個位元組,8位。如果是string型,應該是兩個位元組,16位,因為末尾還有個\0字元。

比如:char c = 'a';//它占用乙個字元

char c = "a";//占用兩個。

char c = "abcde";//占用4+1 = 5 個,結尾有乙個'\0'

2、數字:

從小到大分別為:short、int、float、long、double。

位元組為:1個、2個、4個、8個、8個

位數為:8位、16位、32位、64位、64位

3、漢字

乙個漢字占用兩個位元組,16位。比如:中國,就占用4個位元組,例如:

char c = "中國";//占用4+1 = 5個字元。

擴充套件資料

1、由於常用的英文本元用8位二進位制就可以表示,所以通常就將8位稱為乙個位元組。字長的長度是不固定的,對於不同的cpu、字長的長度也不一樣。

2、不指定 signed 或者 unsigned 的 char 型別,在c語言中是未定義的,若考慮不同的編譯器,我們不能確定 char 型別到底是有符號的,還是無符號的。

7樓:下南生

char c = 'a';//它占用乙個位元組位元組(byte)是計算機資訊技術用於計量儲存容量的一種計量單位內,通常情況下一位元組等於容八位。比如:0x01, 0x45, 0xfa。

字元是指計算機中使用的字母、數字、字和符號,包括:1、2、3、a、b、c、~!·#¥%……—*

8樓:匿名使用者

1 byte 因為他是乙個字元,前面有個\ 只是一種表示方法;比如'\362『是 乙個八進位制整數是同一道理,\』表示字元 』,為了區別而已

9樓:匿名使用者

1 byte /n 轉成ascii碼 就是回車拉 ascii 1 byte乙個符號拉

10樓:匿名使用者

怎麼說呢。\n本身確實是乙個字元。但是請看下面的程式(執行環境windows xp+sp2+vc6)#include "stdio.h"

void main()

執行此程式後,再開啟內「我的電腦」,進入容c盤,分別檢視a.txt和b.txt檔案大小,你會發現分別是3位元組和5位元組。

我個人理解,\n雖然佔1位元組,但因為回車鍵實際上是輸入了\n和\r兩個字元,而且好像unix和linux中就要求\n\r連用是吧?所以,某些編譯器(比如vc),就會將\n處理成\n\r,變成了2個位元組。

有不對的地方還請大蝦指正。

11樓:匿名使用者

#include

void main()

你自bai

己看du執行zhi結果吧

dao或者這內個:

容#include

void main()

12樓:匿名使用者

乙個 my sweets

c語言中 \t 是什麼意思啊,佔幾個位元組數呢?

13樓:天雲一號

\t是c語言中的乙個轉義字元

,表示水平製表符(即鍵盤中tap鍵的功能)。

轉義字元是c語言中表示字元的一種特殊形式。通常使用轉義字元表示ascii碼字符集中不可列印的控制字元和特定功能的字元。

在c程式中,由於轉義字元只能看作乙個字元,因此轉義字元占用乙個位元組。

14樓:尼拉卓爾

輸出的時候的製表符

即跳轉到下乙個製表字段輸出

15樓:zero_玩玩

相當於乙個tab,幾個空格的長度,8個位元位

16樓:匿名使用者

它是字元型的,其占用乙個位元組。

在c語言中乙個指標占用多少位元組。

17樓:blackpink_羅捷

乙個指標變數在記憶體中佔兩個位元組(small模式編譯),乙個指標變數在記憶體中佔四個位元組(32位機器上),一般都是32位機器的,所以四個位元組咯。

指標即為位址,指標幾個位元組跟語言無關,而是跟系統的定址能力有關。

指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容:指標的型別、指標所指向的型別、指標的值或者叫指標所指向的記憶體區、指標本身所佔據的記憶體區。

擴充套件資料

1、指標的型別

從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各個指標的型別:

(1)int*ptr;//指標的型別是int*

(2)char*ptr;//指標的型別是char*

(3)int**ptr;//指標的型別是int**

(4)int(*ptr);//指標的型別是int(*)

(5)int*(*ptr);//指標的型別是int*(*)

2、指標所指向的型別

當你通過指標來訪問指標所指向的記憶體區時,指標所指向的型別決定了編譯器將把那片記憶體區里的內容當做什麼來看待。

從語法上看,你只須把指標宣告語句中的指標名字和名字左邊的指標宣告符*去掉,剩下的就是指標所指向的型別。例如:

(1)int*ptr; //指標所指向的型別是int

(2)char*ptr; //指標所指向的的型別是char

(3)int**ptr; //指標所指向的的型別是int*

(4)int(*ptr); //指標所指向的的型別是int()

(5)int*(*ptr); //指標所指向的的型別是int*()

18樓:哇哎西西

指標即為位址,指標幾個位元組跟語言無關,而是跟系統的定址能力有關。

比如以前是16位系統,指標即為2個位元組,現在一般是32位系統,所以是4個位元組。

指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容:指標的型別、指標所指向的型別、指標的值或者叫指標所指向的記憶體區、指標本身所佔據的記憶體區。

擴充套件資料:

1、指標的型別

從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各個指標的型別:

(1)int*ptr;//指標的型別是int*

(2)char*ptr;//指標的型別是char*

(3)int**ptr;//指標的型別是int**

(4)int(*ptr)[3];//指標的型別是int(*)[3]

(5)int*(*ptr)[4];//指標的型別是int*(*)[4]

2、指標所指向的型別

當你通過指標來訪問指標所指向的記憶體區時,指標所指向的型別決定了編譯器將把那片記憶體區里的內容當做什麼來看待。

從語法上看,你只須把指標宣告語句中的指標名字和名字左邊的指標宣告符*去掉,剩下的就是指標所指向的型別。例如:

(1)int*ptr; //指標所指向的型別是int

(2)char*ptr; //指標所指向的的型別是char

(3)int**ptr; //指標所指向的的型別是int*

(4)int(*ptr)[3]; //指標所指向的的型別是int()[3]

(5)int*(*ptr)[4]; //指標所指向的的型別是int*()[4]

3、指標的值或者叫指標所指向的記憶體區或位址

指標的值是指標本身儲存的數值,這個值將被編譯器當作乙個位址,而不是乙個一般的數值。在32 位程式裡,所有型別的指標的值都是乙個32 位整數,因為32 位程式裡記憶體位址全都是32 位長。

指標所指向的記憶體區就是從指標的值所代表的那個記憶體位址開始,長度為sizeof(指標所指向的型別)的一片記憶體區。以後,我們說乙個指標的值是xx,就相當於說該指標指向了以xx 為首位址的一片記憶體區域。

我們說乙個指標指向了某塊記憶體區域,就相當於說該指標的值是這塊記憶體區域的首位址。指標所指向的記憶體區和指標所指向的型別是兩個完全不同的概念。在例一中,指標所指向的型別已經有了,但由於指標還未初始化,所以它所指向的記憶體區是不存在的,或者說是無意義的。

4、指標本身所佔據的記憶體區

在32 位平台裡,指標本身佔據了4 個位元組的長度。

19樓:舟

指標即為位址,它是乙個

無符號整數(unsigned int),

它是乙個以當前系統定址範圍為取值範圍的整數。

指標幾個位元組跟語言無關,而是跟系統的定址能力有關。

譬如以前是16為位址,指標即為2個位元組,

現在一般是32位系統,所以是4個位元組,

以後64位,則就為8個位元組。

擴充套件資料:1、在64位機器中:

char型別佔1個位元組,short型別佔2個位元組int型別佔4個位元組,long型別佔4個位元組unsigned int型別佔4個位元組,float型別佔4個位元組double型別佔8個位元組。long double型別佔12個位元組2、記憶體分配表

計算機中的記憶體都是編址的,就像你家的位址一樣。在程式編譯或者執行的時候,系統(可以不關心具體是什麼,可能是編譯器,也可能是作業系統)開闢了一張表。每遇到一次宣告語句(包括函式的傳入引數的宣告)都會開闢乙個記憶體空間,並在表中增加一行紀錄。

記載著一些對應關係。

3、c語言

c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

c處理某些佔位元組的漢字問題,c 處理某些佔4個位元組的漢字問題

落月 字符集gb18030是有4個位元組的漢字,c 直接讀的話是亂碼,這種情況應該使用windows api提供的函式來解決才行。1 windows api對gb18030 2000 的支援 下列 windows api 提供對gb18030 2000 的支援。isvalidcodepage get...

c語言弱弱問一下int型別的字佔位元組那題

d 4,8 a 整型,4位元組。b double 型,8 位元組。a 3 不可以版,改 a 3 就可以了權 int 型占有 4個位元組 size a 等於4 double 型占有8位元組 size b 等於8 int x 3 是可以通過編譯的,應該是你程式書寫有問題吧 c語言強制型別轉換問題 強制型...

c語言中chars101abc,c語言中chars101abc0printfsn,s下面程式段的輸出結果是

輸出的結果 aabc 為什麼輸出這個,是因為 代表乙個反斜線字元 101 代表的是101是乙個整數,在printf時就會輸出這個整數的 ascii字元,即 a 程式的輸出結果是 aabc 解釋 強兩個反斜槓是為了輸出乙個反斜槓 義 101是ascii碼,按字串輸出就是a,後邊依次輸出,0是字串結束符...