国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語言學(xué)習(xí)

2019-11-14 11:57:12
字體:
供稿:網(wǎng)友

字符串的輸入輸出

   puts函數(shù)只需要給出字符串參數(shù)的地址

/**put_out.c---使用puts()*/#include<stdio.h>#define DEF "i am a #define string"int main(void){	char str1[80]="An array was initialized to me.";	const char *str2="A pointer was initialized to me.";		puts("I'm an argument to puts().");	puts(DEF);	puts(str1);	puts(str2);	puts(&str1[5]);//從數(shù)組下標(biāo)第五個(gè)開始輸出	puts(str2+4);	return 0;}puts()顯示字符串時(shí)自動(dòng)在其后添加一個(gè)換行符

翻譯程序的第一步首先把源代碼中出現(xiàn)的字符映射到源字符集

明顯常量#define 的用符號(hào)#開頭,ANSI標(biāo)準(zhǔn)允許#前有空格或制表符,而且該標(biāo)準(zhǔn)還允許在#和指令的其余部分之間有空格,并且要求#和指令的其余部分不能有空格。

指令的定義域從指令的開始直到文件的末尾  定義符號(hào)常量或明顯常量預(yù)處理器指令從#開始,到其后第一個(gè)換行符為止,指令的長度限于一行代碼

/*簡單的預(yù)處理器的例子*/#include<stdio.h>#define TWO 2#define OW "Consistency is the last refuge of the unimagina/tive. -Oscar Wilde"   /*反斜線把這個(gè)定義延續(xù)到下一行*/#define FOUR TWO*TWO#define PX PRintf("X is %d./n",x)#define FMT "X is %d./n"int main(void){	int x=TWO;	PX;	x=FOUR;	printf(FMT,x);	printf("%s/n",OW);	printf("TWO:OW/n");	return 0;}每個(gè)#define行有三部分組成 第一部分指令為#define自身。第二部分為所選擇的縮略語,這些縮略語稱為宏   宏的名字之間不允許有空格,而且必須遵循命名規(guī)則:只能使用字母數(shù)字下劃線(第一個(gè)不能用數(shù)字開頭)。第三部分稱為替換列表或主體,從宏變?yōu)樽罱K的替換文本的過程稱為宏展開

#define PX printf("x is %d./n",x);

  預(yù)處理   宏        主體

預(yù)處理器不進(jìn)行計(jì)算,他只是按照指令進(jìn)行文字替換操作

宏定義中可以含有其他宏

語言符號(hào)

  系統(tǒng)把宏的主體當(dāng)作語言符號(hào)(token)類型字符串,而不是字符型字符串

在#define中使用參數(shù)  ,可以創(chuàng)建外形和作用都相似的類函數(shù)宏,宏的參數(shù)也用圓括號(hào)括起來

下面是一個(gè)類函數(shù)宏定義的示例:

#define SQUARE(x)  x*x

在程序中可以這樣使用  z=SQUARE(2);    //z=4

/**mac_arg.c 帶有參數(shù)的宏*/#include<stdio.h>#define SQUARE(x) x*x#define PR(X) printf("The result is %d./n",X)int main(void){		int x=4;	int z;	printf("x=%d/n",x);	z=SQUARE(x);	printf("Evluating SQUARE(x):");	PR(z);	z=SQUARE(2);	printf("Evluating SQUARE(2):");	PR(z);	printf("Evluating SQUARE(x+2):");	PR(SQUARE(2+x));	printf("Evluating 100/SQUARE(2):");	PR(100/SQUARE(2));	printf("x is %d./n",x);	printf("Evluating SQUARE(++x):");	PR(SQUARE(++x));	printf("After incrementing,x is %x./n",x);		return 0;}

typedef簡介

        typedef工具是一種高級(jí)數(shù)據(jù)特性,他使用戶能夠?yàn)槟骋活愋蛣?chuàng)建用戶的名字,與#define有三個(gè)不同之處

與define不同,typedef給出的符號(hào)名稱僅限于對類型,而不是對值。解釋由編譯器進(jìn)行,而不是預(yù)處理器執(zhí)行 雖然他的范圍有限,但在其受限范圍內(nèi),typedef比#define靈活    該定義如果是在一個(gè)函數(shù)的內(nèi)部,那么他的作用域就是局部,定義在函數(shù)的外部他就是全局作用域


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平武县| 如东县| 会同县| 白沙| 云霄县| 塔河县| 精河县| 工布江达县| 宜兰市| 抚顺市| 白银市| 汉川市| 耒阳市| 宜宾市| 电白县| 仙桃市| 大名县| 临江市| 克什克腾旗| 通渭县| 伊春市| 卓尼县| 永年县| 竹溪县| 桃园市| 西华县| 武邑县| 阿尔山市| 苍溪县| 永顺县| 丹寨县| 息烽县| 延川县| 鲁甸县| 罗源县| 民权县| SHOW| 贵阳市| 江油市| 当阳市| 林芝县|