在c語言中pd和x的區別,在c語言中p,d和x的區別是什麼?

2021-03-03 21:12:28 字數 5846 閱讀 6001

1樓:匿名使用者

%x不要前導0,也就說前面的0會被自動去掉也可以用%08x列印出來跟%p一樣的

實際上是一樣的,不過%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的

計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的

位址需要符號麼-_-#

%u當然很大了,因為%d表示負數的時候(2進製)第1位是1,舉個例子:

用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了

在c語言中 %p ,%d和%x 的區別是什麼?

2樓:娜lucky哈哈

%p 是以16進製制的形式輸出記憶體位址。

%x 也是以16進製制的形式輸出記憶體位址。

不過%p的輸出字元為8個前2個為00。

%x只有6個。

%d 可以輸出整數。

也可以以10進製的形式輸出。

%d 是有符號。

%x 是無符號。

舉個例子:

用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了。

%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的。

計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的

%u當然很大了,因為%d表示負數的時候(2進製)第1位是1。

3樓:匿名使用者

% p不要前導0,也就說前面的0會被自動去掉也可以用%08x列印出來跟%p一樣的實際上是一樣的,不過%p是專用來處理指標的吧,而%x對列印的資料都可以,感覺差不多,就是用%p的時候列印出來都是8個資料的計算機儲存的都是2進製,當然也可以用%d列印位址,列印指標,指標就是用來存放位址的位址需要符號麼-_-#%u當然很大了,因為%d表示負數的時候(2進製)第1位是1,舉個例子:用8個2進製位表示-1為11111111轉成無符號型就是2的9次方減1了

在c語言中 %p ,%d和%x 的區別%p 是以16進製制的形式輸

4樓:匿名使用者

%p用來輸出指標

%x用來輸入int 型別。

二者都是16進製制值輸出

如果是32位系統 那麼沒區別

如果是64位系統 那麼 %p會輸出8位元組資料。 而%x只能輸出4位元組資料。

也就是說

32位系統 %p等效於%x

64位系統 %p等效於%lx

在c語言中%p,%d和%x的區別%p是以16進製制的

5樓:糖糖又笑了

%p用來輸出指標

%x用來輸入int 型別。

二者都是16進製制值輸出

如果版是32位系統 那麼沒區別

如果是64位系統 那麼 %p會輸出8位元組權資料。 而%x只能輸出4位元組資料。

也就是說

32位系統 %p等效於%x

64位系統 %p等效於%lx

c語言中的%p和%x的區別

6樓:匿名使用者

1、輸出

的型別不同:

%p用來輸出指標的值、輸出位址符。指標,是乙個無符號整數(unsigned int),它是乙個以當前系統定址範圍為取值範圍的整數。而%x, %x 輸出無符號以十六進位制表示的整數。

2、輸出的結果會有不同:

32位系統下定址能力(位址空間)是4g bytes(0~2^32-1)二進位制表示長度為32bits(也就是4bytes), unsigned int型別也正好如此取值,%p用來輸出位址符時,結果是32位的。p 對應於指標型別,返回的值是指標的位址,以十六進位制的形式來表示。

例如:format("this is %p",p); 返回的是:this is 0012f548

7樓:

格式控制符「%p」中的p是pointer(指標)的縮寫。指標的值是語言實現(編譯程式)相關的,但幾乎所有實現中,指標的值都是乙個表示位址空間中某個儲存器單元的整數。printf函式族中對於%p一般以十六進位制整數方式輸出指標的值,附加字首0x。

示例:int i = 1;

printf("%p",&i);

相當於int i = 1;

printf("0x%x",&i);

對於32位的指標,輸出一般會是類似0xf0001234之類的結果。

8樓:匿名使用者

16位和32位機 沒區別

64位機 %p輸出8位元組 最多16位16進製製數%x輸出按int 實際4位元組,最多8位16進製製數也就是說 如果輸出位址 用%x在64位機器上會出錯。

9樓:找你惹你

%p為16進製製數, 長度由當前作業系統決定, 32位系統長度就為32bit, 64位系統長度為64bit

%x為16進製製數, 長度為32bit

c語言裡%d,為什麼有的是%d/n,區別是什麼?

10樓:匿名使用者

%d %f是列印變數的型別。

%d是整數型別。用來輸出十進位制整數,按整型資料的實際長度輸出。

%f是浮點型別(就是含小數點的,預設為6位)

\n是表示回車,即,轉到下一行。

它的意義多表現在有多個printf的時候,為了不混淆,一般每個printf的內容佔一行。

c語言中對於不同型別的資料用不同的格式字元,%d %f是printf函式格式字元。

拓展資料:

在c語言中:printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。

printf()函式的呼叫格式為: printf("《格式化字串》", 《參量表》)。

格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和資料格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

c語言中printf函式的介紹以及使用

11樓:654鄉

%d為整型輸出,%d比%d/n多了乙個「/n」換行符,這樣前者在下一次的輸出會緊接在本次輸出內容後,而後者下一次輸出會在下一行首開始。

如:int a,=10;b=5;

printf("%d\n,%d",a,b);

輸出:10

5c語言中%s,%x,%f,%.100f,%的意思:

格式說明由「%」和格式字元組成,如%d%f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由「%」字元開始的。

格式字元有d,o,x,u,c,s,f,e,g等。

%o以八進位製數形式輸出整數,

%x以十六進位製數形式輸出整數,或輸出字串的位址。

%u以十進位製數輸出unsigned型資料(無符號數)。注意:%d與%u有無符號的數值範圍,也就是極限的值,不然數值列印出來會有誤。

%c用來輸出乙個字元,

%s用來輸出乙個字串,

%f用來輸出實數,以小數形式輸出,預設情況下保留小數點6位。

%.100f用來輸出實數,保留小數點100位。

%e以指數形式輸出實數,

%g根據大小自動選f格式或e格式,且不輸出無意義的零。

12樓:匿名使用者

區別在於兩者定義的輸出不同,%d控制的輸出不換行,而%d/n控制的輸出要換行。/n是轉義字元,控制換行。

例如:int a,=2;b=5;

printf("%d,%d",a,b);

輸出結果為:

2  5

而int a,=2;b=5;

printf("%d,%d",a,b);

輸出結果為:25

擴充套件資料:

/n是轉義字元中的一種,而轉義有2種情況:

(1)將普通字元轉為特殊用途,一般是程式語言中,用於表示不能直接顯示的字元,比如後退鍵,回車鍵,等。

(2)用來將特殊意義的字元轉換回它原來的意義。

轉義字串(escape string),即字元實體(character entity)分成三部分:第一部分是乙個&符號,英文叫ampersand;第二部分是實體(entity)名字或者是#加上實體(entity)編號;第三部分是乙個分號。

比如,要顯示小於號(<),就可以寫 < 或者 < 。

用實體(entity)名字的好處是比較好理解,一看lt,大概就猜出是less than的意思,但是其劣勢在於並不是所有的瀏覽器都支援最新的entity名字。而實體(entity)編號,各種瀏覽器都能處理。

備註:同乙個符號,可以用「實體名稱」和「實體編號」兩種方式引用,「實體名稱」的優勢在於便於記憶,但不能保證所有的瀏覽器都能順利識別它,而「實體編號」則沒有這種擔憂,但它實在不方便記憶。

常用轉義字元及含義如下圖:

13樓:prince某人控

%d:輸出的是整形字元

/n:換行符,即輸出結果需要換行

%d和%d/n的區別就在於,%d下一次的輸入會緊接著本次的輸出內容後,而%d/n下一次的輸出會換行,在下一行的顯示。

例如:int a=6;b=7;

print("%d/n,%d",a,b)

輸出:6

7擴充套件資料c語言中%d,%p,%u,%lu等都有什麼用處%d       有符號10進製整數(%ld 長整型,%hd短整型 )

%hu   無符號短整形(%u無符號整形,%lu無符號長整形)%i    有符號10進製整數 (%i 和%d 沒有區別,%i 是老式寫法,都是整型格式)

%o   無符號8進製整數

%u   無符號10進製整數

%x   無符號的16進製制數字,並以小寫abcdef表示%x     無符號的16進製制數字,並以大寫abcdef表示%f    輸入輸出為浮點型 (%lf雙精度浮點型)%e/e     用科學表示格式的浮點數

%c        輸入輸出為單個字元

%s        輸入輸出為字串

14樓:梧桐

int a=1; //整數型別

float b=1.2; //浮點型

printf("%d",a); //輸出整數a, %d表示輸出型別為整型

printf("%f",b); //輸出浮點數 b ,%f表示輸出型別為浮點型

printf("1234\n5678"); //注意,我在中間加了乙個換行符 「\n」

輸出結果為:

1234

5678

15樓:匿名使用者

你寫的有問題吧。應該是:%d\n吧?

%d是要求輸出(或者輸入)的資料格式是有符號十進位制整數,加了\n之後,代表的是,輸出的時候結果會自動的換到下一行。如果是輸入語句裡面,比如:scanf("%d\n",&a);那就麻煩了。

因為\n可以代表無數個回車符。

16樓:匿名使用者

%d是輸出乙個整數,%d\n是輸出這個整數並換行(\n表示換行)如:int a,=10;b=5;

printf("%\n,%d",a,b);

輸出:105

17樓:何處可人生

因為%d是整形數字的轉義符,而你卻沒有給它乙個變數,所以顯示的肯定是亂碼了。。。應該這樣

#include

void main()

這樣顯示就是hello %d了,還有你include打錯了,main函式少個花括號

c語言ba和ba的區別,C語言中bb,和b語句有什麼區別。

這個和 沒什麼關係,我詳細的講一下,你一定要看完啊 注意理解a 和 a的區別 a 先將a的值代入表示式,在表示式運算完畢後,再將a進行 處理 a 先將a進行 處理,再將a的值代入表示式注意對於a 這裡有乙個 在表示式運算完畢後,再將a進行 處理 b a 這是乙個賦值表示式,所以先將a的值代入表示式,...

c語言中x和x有什麼區別

x 是先運算後 1 x 5 比如printf d x 輸出的結果是 5 x 是先 1 後運算 同樣x 5 printf d x 輸出的結果是 6 區別是 x是x位址使用前就減1,x 使用時按原值。這兩個都是每迴圈一次,位址減1.c語言中x 和 x的區別?c語言中提供了自增1運算子 和自減1運算子 而...

c語言中與的區別,C語言中 與 的區別

區別如復下表 擴充套件資料具體區別制的例子 bai1 c 語言輸入輸出du printf a d,b d zhi,a,b scanf d d d a,b,c 2 vb 語言的輸入輸出 inputbox x 輸入 x 的值dao print x x 而且,這兩種運算子,還分為字首運算和字尾運算 如 i...