C語言中格式化輸出符號%d、%c、%p、%x等詳解
概覽
C語言中的格式化輸出符號有很多,以下是一些常見的:
- %d 或 %i:用于輸出十進(jìn)制整數(shù)。
- %u:用于輸出無符號十進(jìn)制整數(shù)。
- %f:用于輸出浮點(diǎn)數(shù)。
- %s:用于輸出字符串。
- %c:用于輸出字符。
- %p:用于輸出指針。
- %x 或 %X:用于輸出十六進(jìn)制數(shù),%x表示輸出小寫字母,%X表示輸出大寫字母。
- %o:用于輸出八進(jìn)制數(shù)。
- %e 或 %E:用于輸出科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)。
- %g 或 %G:用于輸出浮點(diǎn)數(shù),但是沒有無意義的零。
這些格式化輸出符號可以在printf函數(shù)的格式字符串中使用,用來指定輸出的格式。
%d
%d是C語言中的格式化輸出符號,用于將整數(shù)值按照十進(jìn)制格式輸出到標(biāo)準(zhǔn)輸出流(通常是控制臺)。它可以用于printf函數(shù)中的格式化字符串中,指示要輸出的整數(shù)的位置和格式。例如,"%d"可以用來輸出一個(gè)整數(shù)變量的值。
%c
%c是C語言中的格式化輸出符號,用于輸出字符。在printf函數(shù)中,%c可以用來輸出一個(gè)字符變量的值。在你的代碼中,如果你想打印出數(shù)組元素的字符表示,你可以使用%c。
#include <stdio.h>
int main() {
unsigned char array[16];
for (int i = 130; i < 146; i++)
{
array[i] = i;
//打印數(shù)組的每個(gè)元素的地址和值
printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);
}
//
return 0;
}printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);
這將會打印出數(shù)組元素的字符表示,而不是整數(shù)值。
輸出:
array[130] address is 000000000061FE82, value is é array[131] address is 000000000061FE83, value is a array[132] address is 000000000061FE84, value is ? array[133] address is 000000000061FE85, value is à array[134] address is 000000000061FE86, value is ? array[135] address is 000000000061FE87, value is ? array[136] address is 000000000061FE88, value is ê array[137] address is 000000000061FE89, value is ? array[138] address is 000000000061FE8A, value is è array[139] address is 000000000061FE8B, value is ? array[140] address is 000000000061FE8C, value is ? array[141] address is 000000000061FE8D, value is ì array[142] address is 000000000061FE8E, value is ? array[143] address is 000000000061FE8F, value is ? array[144] address is 000000000061FE90, value is é array[145] address is 000000000061FE91, value is ?
%d和%c的區(qū)別

%p
在C語言中,%p是一種格式化輸出的轉(zhuǎn)換說明符,用于打印指針變量的值。例如,下面的代碼使用%p打印一個(gè)指向整數(shù)的指針變量p的值:
int num = 42;
int *p = #
printf("The value of p is %p\n", p);
輸出為:
The value of p is 0x7ffee1d7e9ac
%p打印出的是指針變量p的十六進(jìn)制地址。
%x %X
在C語言中,我們可以使用轉(zhuǎn)換說明符 %x 或 %X 來打印十六進(jìn)制數(shù)。
%x 會將小寫字母用于小于等于10的數(shù)字以及大寫字母用于大于10的數(shù)字,而 %X 則全部使用大寫字母。
下面是一個(gè)示例代碼:
int num = 255;
printf("num in hex is %x\n", num); // 輸出 "num in hex is ff"
printf("num in HEX is %X\n", num); // 輸出 "num in HEX is FF"
%x 和 %X 都只能用于輸出 unsigned int 或者 unsigned long 類型的數(shù)據(jù),如果使用 %x 或 %X 輸出其他類型的數(shù)據(jù),將會導(dǎo)致未定義的行為。
輸出浮點(diǎn)數(shù)
在C語言中,可以使用%f,%e,%g,%E或%G作為格式化輸出符號來輸出浮點(diǎn)數(shù)。
%f:按固定點(diǎn)表示法打印浮點(diǎn)數(shù)。%e或%E:按科學(xué)計(jì)數(shù)法打印浮點(diǎn)數(shù)。%e使用小寫字母(例如,3.14159e+00),%E使用大寫字母(例如,3.14159E+00)。%g或%G:根據(jù)值的大小,printf函數(shù)決定使用固定點(diǎn)表示法或科學(xué)計(jì)數(shù)法。%g使用小寫字母,%G使用大寫字母。
例如:
float num = 3.14159;
printf("The value of num is %f\n", num);
printf("The value of num is %e\n", num);
printf("The value of num is %g\n", num);
這將分別以固定點(diǎn)表示法,科學(xué)計(jì)數(shù)法和自動選擇的方式打印出浮點(diǎn)數(shù)。
參考
《C Primer Plus》
總結(jié)
到此這篇關(guān)于C語言中格式化輸出符號%d、%c、%p、%x等的文章就介紹到這了,更多相關(guān)C語言格式化輸出符號%d %c %p %x內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++編程中刪除運(yùn)算符與相等運(yùn)算符的使用解析
這篇文章主要介紹了C++編程中刪除運(yùn)算符與相等運(yùn)算符的使用解析,delete和==以及!=運(yùn)算符的使用是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01
C語言中的pause()函數(shù)和alarm()函數(shù)以及sleep()函數(shù)
這篇文章主要介紹了C語言中的pause()函數(shù)和alarm()函數(shù)以及sleep()函數(shù),是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09

