c語言用
① c語言中%的作用
頭文件前使用#,表示預處理,加入到工程中一並編譯。
其他用法:
在printf中的%後面的那個#是用來格式說明的,
如果在g,G,f,e或者E代碼前加一個#,可以確保顯示一個小數點(即使沒有小數位),
在o之前加上則輸出八進制,
在p,x或者X之前則確保輸出十六進制
例如上面的那個就是把地址按照十六進制形勢輸出.
在編譯時,#的作用是,把後面的變元轉化為帶引號的串.
例如上面的#define FUN(a) cout<<#a;代表的就是把a當作一個字元串輸出,比如FUN(123\n);將會輸出123以及一個回車.
##的作用才是在編譯的時候把前後連接起來.
例如:
#include
#define concat(a,b) a##b
int main(void)
{
int xy=10;
printf("%d",concat(x,y));
//即是: printf("%d",xy);
return 0;
}
② 計算機C語言有什麼用啊
用處:C語言是一種計算機程序設計語言。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。
特徵:
1、C語言是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、C語言是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。
3、C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
4、C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大。
5、C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX、LINUX等等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。
(2)c語言用擴展閱讀:
優點:
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據類型豐富
C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。
③ C語言中,用"->"和用"."的區別
c語言中,##表示把兩個宏參數貼合在一起,而單個#的功能是將其後面的宏參數進行字元串化操作。即,
#include<stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
{
printf("%s\n",h(f(1,2)));//輸出12
printf("%s\n",g(f(1,2)));//輸出f(1,2)
return 0;
}
##被稱為連接符(直接貼合),用來將兩個宏參數連接為一個宏參數。而單個#的功能是將其後面的宏參數進行字元串化操作,簡單地說就是在對它所引用的宏變數通過替換後在其左右各加上一個雙引號,使其成為字元串。
④ C語言中{}作用
取決於在scanf中使用還是在printf中使用。
在scanf中使用,則添加了*的部分會被忽略,不會被參數獲取。
例如:int a,b;char b[10];scanf("%d%*s",&a,b);輸入為:12 abc那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數(例如這里的字元數組b)
在printf中使用,表示用後面的形參替代的位置,實現動態格式輸出。
例如:
printf("%*s",10,s);/意思是輸出字元串s,但至少佔10個位置,不足的在字元串s左邊補空格,這里等同於printf("%10s",s);/
(4)c語言用擴展閱讀:
C語言%*s用法
1、在scanf中使用,則添加了*的部分會被忽略(跳過),不會被參數獲取。
例如:
int a,b;
char b[10];
scanf("%d%*s",&a,b);
輸入為:
12 abc
那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數(例如這里的字元數組b)
用*和掃描集配合,可以從輸入中只選出需要的內容,而忽略其餘的東西。
另外,也常用於清空緩沖區。
2、在printf中使用,*表示用後面的形參替代*的位置,實現動態格式輸出。
例如:
printf("%*s", 10, s); /*意思是輸出字元串s,但至少佔10個位置,不足的在字元串s左邊補空格,這里等同於printf("%10s", s);*/
printf("%.*s
",int,str) ;
// %.*s 其中的.*表示顯示的精度 對字元串輸出(s)類型來說就是寬度
// 這個*代表的值由後面的參數列表中的整數型(int)值給出
例如:
printf("%.*s ", 1, "abc");// 輸出a
printf("%.*s ", 2, "abc");// 輸出ab
printf("%.*s ", 3, "abc");// 輸出abc >3是一樣的效果 因為輸出類型type = s,遇到'