C語言中printfd d d ,a,b,c 為什麼

2021-04-18 12:28:08 字數 6140 閱讀 4250

1樓:匿名使用者

printf中,第一個引數用於格式化輸出,如果%d中間加逗號,那麼輸出的數字中間就有逗號。

c語言中 printf語法printf("%d %d %c\n",a,b,c);和什麼區別?一定採納

2樓:匿名使用者

前面是輸出a b c的值

,如果定義a b c都為int型,這樣輸出的就是a b c的值,而後者是輸出a b c的地址 一般是不會用後者的 後者的使用一般在scanf函式中,比如要輸入a 整形的數值 scanf("%d",&a);這個時候一定是&a 表示a的地址。望採納。

3樓:金色潛鳥

簡單說,前者是變數的值,後者是變數的地址。

這還同變數宣告有關。輸出格式要與它們匹配。

例如:char a,b,c;

a='x';b='y';c='z';

printf("%d %d %c\n",a,b,c); // a,b 用 十進位制輸出 'x' 'y' 的 ascii 編碼值,c 輸出 'z' 的字元 z.

輸出:120 121 z

// 帶&的 是 算出 它們的地址 &a,&b,&c 分別是 a,b,c 的地址。

對應的輸出格式 ,前兩個%d 還可以,按十進位制 輸出,後 一個 %c 就與&c不匹配了。

輸出地址,一般用 16 進位制,%p 格式:

例如輸出: 0012ff7c 0012ff78 0012ff74

4樓:

一般是都是這樣寫的:

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

在printf中一變數前面是一般是不會加「&」的,&是取地址符,是取得該變數的地址,一般用在scanf函式中:

scanf("%d",&a) ;

printf("%d",a) ;

如果用在printf中則為輸出變數的地址。

5樓:

前一句是列印a,b,c的值,後一句是列印a,b,c的地址&為取地址操作

你知道這些變數都存在記憶體中的某個地址,這個地址裡面有一個資料,這個資料就是這個變數的值

變數的值和變數的地址,這是兩個概念

c語言printf("%%d,%%d\n",a,b);中兩個%%是什麼意思?怎麼輸出?

6樓:四舍**入

%是轉義符。

例如/,兩個//代表一個/,同理所以兩個%% 代表一個%所有的ascii碼都可以用「\」加數字(一般是8進位制數字)來表示。

而c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。

擴充套件資料:轉義字元不屬於控制字元;控制字元也不屬於轉義字元,如果控制字元的定義是非圖形的字元,或者對輸出裝置(印表機、文字終端)有特殊意義的字元。

轉義字元中的特殊字元

+:表示空格

(空格):應換用加號 + 或%20 表示

/:分隔目錄和子目錄

?:分隔實際的 url 和引數

%:指定特殊字元

#:表示書籤

&:url中指定的引數間的分隔符

=:url中指定引數的值

!:url中指定引數的值

7樓:匿名使用者

%是轉義符,你知道/嗎? 兩個//代表一個/

所以兩個%% 代表一個%

所有的ascii碼都可以用「\」加數字(一般是8進位制數字)來表示。而c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。

轉義字元 意義 ascii碼值(十進位制)

\a 響鈴(bel) 007

\b 退格(bs) 008

\f 換頁(ff) 012

\n 換行(lf) 010

\r 回車(cr) 013

\t 水平製表(ht) 009

\v 垂直製表(vt) 011

\\ 反斜槓 092

\? 問號字元 063

\' 單引號字元 039

\" 雙引號字元 034

\0 空字元(null) 000

\ddd 任意字元 三位八進位制

\xhh 任意字元 二位十六進位制

字元型常量

字元型常量所表示的值是字元型變數所能包含的值。我們可以用ascii表示式來表示一個字元型常量,或者用單引號內加反斜槓表示轉義字元。

'a', '\x2f', '\013';

其中:\x表示後面的字元是十六進位制數,\0表示後面的字元是八進位制數。

注意:在turbo c 2.0中,字元型常量表示數的範圍是-128到127,除非你把它宣告為unsigned,這樣就是0到255。

上面我們見到的\x,\n,\a等等都是叫轉義字元,它告訴編譯器需要用特殊的方式進行處理。下面給出所有的轉義字元和所對應的意義:

轉義字元 描述

\' 單引號

\ 雙引號

\\ 反斜槓

\0 空字元

\ccc (最多三位)八進位制數

\a 聲音符

\b 退格符

\f 換頁符

\n 換行符

\r 回車符

\t 水平製表符

\v 垂直製表符

\xhh(最多兩位)十六進位制符

8樓:青魚罐頭

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

其中%d是控制輸入型別的 意思是輸入的a,b是整型;

%%d意思是輸出倆個字元:%b (就是輸出整型b前邊再加個%)。

9樓:匿名使用者

兩個%%表示輸出%這個字元

10樓:匿名使用者

int a = 10;

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

在vc++6.0裡測試,輸出是%d,格式是錯誤的!

在c語言中 printf("a=%%d,b=%%d\n",a,b);裡的%%d是什麼意思? 20

11樓:風翼殘念

%%是輸出%號。%是轉義符。%d 輸出整型。

%nd 輸出的整型寬度至少為n位,右對齊,]即寬度至少為5位,位數大於5則輸出實際位數,%0nd 用得比較多,表示輸出的整型寬度至少為n位,不足n位用0填充。

c語言中%有兩種意思,第一表示求餘符號,經常會用到判斷一個數是不是能被另一個整除。

如:7%3=1(7除以3,餘下1,) 1%3=1(1除以3除不盡,餘下1);

如判斷一個m是奇數還是偶數?**如下:if(m%2==0) print f("偶數")。

2、引導符,用於引導輸入輸出項表列的格式。

例如:print f("%d%c%f",a,b,c);意思就是a以整型輸出,b以字元型輸出,c以實型輸出。

12樓:會飛的小兔子

在c語言中printf("a=%%d,b=%%d\n",a,b);裡的%%d是程式輸出結果。

%d是表示後面的變數b的值用整數形式顯示。

後面的兩個%,表示顯示一個%。

如果b的值是20,則輸出是「20%」。

如果要輸出整數a,b的值,應改為printf("a=%d,b=%d\n",a,b)。

擴充套件資料

printf格式控制符處理引數

printf有很多格式控制符,例如%d,它在處理輸入時,會從堆疊中取其對應大小,即4個位元組作為對應的引數值。也就是說,當傳入引數和格式控制符匹配或者在經過型別提升後和格式控制符匹配的時候,引數處理是沒有任何問題的。

但是不匹配時,可能會出現未定義行為。例如,%f期望一個double(8位元組)型別,但是傳入的引數是int(4位元組),那麼在處理這個int引數值,可能會多處理4個位元組,並且也會造成處理資料錯誤。

13樓:匿名使用者

這裡是錯誤寫法。

%%表示轉義字元%。

所以這裡會輸出

a=%d,b=%d

與後續的a,b值無關。

14樓:雲畫的月光

%%就是輸出字元%,後面的d就只是字串,不再是格式宣告,所以,後面的a,b就輸不出來。如果想輸出%,應該是%%%d或者%d%%

15樓:匿名使用者

輸出結果是:a=%1,b=%d

其中的1是你上面的a的賦值,比如1.

%%表示輸出%

%d表示輸出一個有符號的十進位制數

%%%d 你應該把兩個分開理解%%和%d

printf(「%d,%d,%d\n」,(a++,b++,c++),b,c)是什麼意思

16樓:金色潛鳥

int b=3,c=3;

輸出1 是輸出 逗號表示式 (a++,b++,c++) 的值逗號表示式 的 值 等於 最右 一個式子 c++ 的 當前 值,就是 c 的當前值(尚未自增)

逗號表示式 裡的3個式子 用的是 字尾加,所以 a,b,c 用當前值,出了逗號表示式後再 各自 增加 1。

輸出2 是輸出 自增 1 後 的 b 值(已自增)輸出3 是輸出 c 的當前值 -- 這同編譯器編譯優化處理有關,它可能仍用原值,也可能已增1。若未增1,則 出了列印語句後 會自增1。

(建議,不要使用這種 帶 不確定 因素的 語句。)--例子, ms vc++ 5.0

#include

int main()

輸出: 3, 4, 3

(不是 3,3,4)

17樓:匿名使用者

printf輸出語句執行前, b = 3, c = 3;

執行printf語句時,(a++, b++, c++)逗號表示式執行,並且返回最後一個逗號後的c++的值作為整個逗號表示式的值,而c++返回值為3; 執行完該逗號表示式後,c的值變為4; 接著輸出b;接著輸出4。

因而輸出的結果為3,3,4.

18樓:

按十進位制輸出(a++,b++,c++)、b、c三個表示式的值,中間用逗號隔開。

朋友你恍然大悟了?我看未必。請vc++6.0下的結果:

19樓:匿名使用者

就是輸出表示式的值啊,

c語言中設a=1,b=2,c=3,d=4;執行printf(%d%d%d%d\n",a==b==c,c=a==b,c==(a=b),b=c);的結果是什麼 100

20樓:匿名使用者

c語言提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來專。如:

3+5,6+8稱為逗號表示式,又屬稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2逗號表示式的求解過程是:先求解表示式1,再求解表示式2。

整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式a=3*5,a*4對此表示式的求解,讀者可能會有兩種不同的理解:

一種認為「3*5,a*4」是一個逗號表示式,先求出此逗號表示式的值,如果a的原值為3,則逗號表示式的值為12,將12賦給a,因此最後a的值為12。另一種認為:「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。

這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子,因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。經計算和賦值後得到a的值為15,然後求解a*4,得60。

整個逗號表示式的值為60。

c語言中 printf("%d\n",a "%d\n",b);是什麼意思

21樓:請輕輕輕輕的來

%d 是輸出一個整數,\n是回車換行,a,b是你定義的那一個量。 %d適用於int型

貌似你這個句子寫的有點詭異,但也是正確的

printf("%d\n,%d\n"a,b); 這樣寫比較好看你上面的那個句子的意思就是,輸出a的值,然後換行,然後輸出b的值,然後換行

C語言中headnode是什麼,C語言中,頭指標head,和headnext分別是什麼

應該是個變數名,直譯過來是頭指標,一般用在連結串列裡 c語言。如圖。星號 跟在node後面和在head前面有什麼區別?這兩種寫法效果是一樣的,沒有區別 如同 定義一個指標變數,可以寫 int p int p int p 沒區別 都是代表結構體指標 c語言中,頭指標head,和head next分別是...

c語言中while的用法C語言中while的用法

c語言中while的用法解析如下 一 1表示true,在bool型別取值false和true,0為false,非0為true 例如 1和2都是true 程式中,這裡1就表示永真,直到迴圈體內遇到break。二 while用法演示解析 1 含義 while 迴圈會在指定條件為真時迴圈執行 塊。2 語法...

c語言中while的用法,C語言中while的用法

當n 1時執行while迴圈結構裡的語句,當n不等於1時,則跳過該迴圈執行迴圈體外的語句。while 迴圈的格式 while 表示式 while 迴圈的執行順序 當表示式為真,則執行下面的語句,語句執行完之後再判斷表示式是否為真,如果為真,再次執行下面的語句,然後再判斷表示式是否為真 就這樣一直迴圈...