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

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

大學(xué)階段不常見(jiàn)的C語(yǔ)言表達(dá)

2019-11-14 08:56:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

大學(xué)階段不常見(jiàn)的C語(yǔ)言表達(dá)

 這些用法容易忘記,因?yàn)槲也怀S冒。看味家瓡?shū),今天寫(xiě)出來(lái)以后就不要查書(shū)了。

重定向

輸入重定向例子:  F:/C_Study/temp1/temp1.exe < F:/C_Study/temp1/myWord.txt    把這個(gè)文檔中的數(shù)據(jù)輸入到程序。

輸出重定向例子:  F:/C_Study/temp1/temp1.exe > F:/C_Study/temp1/myword.txt    輸出到這個(gè)文本文檔。

輸出重定向追加:   F:/C_Study/temp1/temp1.exe << F:/C_Study/temp1/myword.txt

函數(shù)指針

char (*f)()=getfirst;

int (*f2)(int a,double b)=max;

返回類(lèi)型  (*指針名)(函數(shù)參數(shù));

const 修飾指針

const int *p=a; //p指向的數(shù)據(jù)不可改變;

int * const p=a;//p不可指向別的內(nèi)存;

const int * const p=a;//指向的數(shù)據(jù)不可改變,p不可指向別處內(nèi)存。

命令行參數(shù)

#include"stdio.h"int main(int argc,int *argv[]){	PRintf("%d ",argc);	for(int i=1;i<argc;i++)	{		printf("%s/n",argv[i]);	}	return 0;}

volatile

用于硬件地址和其他并行程序共享的數(shù)據(jù)。

防止編譯器對(duì)代碼優(yōu)化。直接讀取原內(nèi)存中數(shù)據(jù)。

const volatile 不能被程序改變,可以被程序以外的代理改變。

restrict

修飾指針。表示該指針是訪問(wèn)的唯一方式。//這樣就可以讓編譯器優(yōu)化代碼。

memcpy() 和 memmove()

memcpy(void * restrict s1,const void *restrict s2,size_t n);//從 s2 把 n 個(gè)字節(jié)復(fù)制到 s1。s1 和 s2 不可重復(fù)。 

memmove(void * restrict s1,const void *restrict s2,size_t n);//從 s2 把 n 個(gè)字節(jié)復(fù)制到 s1;

文件操控函數(shù)

fseek(文件指針,long類(lèi)型偏移字節(jié),起始位置)//SEEK_SET,SEEK_CUR,SEEK_END,成功返回0,否則返回1.

ftell(文件指針),返回當(dāng)前偏移的字節(jié)數(shù)

fread(),fwrite(),feof()等等等等。本階段用不到,這里不詳舉例了。

伸縮數(shù)據(jù)

	struct a	{		int a1;		char a2[];	};	struct a *p=(struct a *)malloc(sizeof(struct a)+10*sizeof(char));	free(p);

指針

int *a[3][4]  //12個(gè)指針。指向 int *類(lèi)型。

int (*a)[3][4]  //一個(gè)指針,指向 int[3][4]。

int (*a[3])[4]  //三個(gè)指針,只想 int[4].

char (*f)()  //函數(shù)指針。指向char。

char (*f[3])()  //3個(gè)指向 char的函數(shù)指針。

位字段

#include"stdio.h"#include"stdlib.h"typedef struct colour{	int a1:1;//一位 	int a2:2;//兩位 	int   :1;//無(wú)名的一位。可用于對(duì)齊。 	int   :0;//強(qiáng)制對(duì)其到下一個(gè)字節(jié)。 	int a3:10;//10位。 }colour;int main(int argc,int *argv[]){	colour a;	a.a1=1;	a.a2=3;	return 0;}

編譯預(yù)處理

##粘合。#粘合字符串。如 #define xname(n) x##n

__VA_ARGS__  可變參數(shù)。如  #define PR(...)  printf(__VA_ARGS__) 。  如#define PR(x,...) printf("mess"#x":"__VA_ARGS__)

#define limit 20const int lim=50;const int data[limit];//不能用 lim static int data2[limit];//不能用 lim 

#ifdef xxx    //和  #if  define(xxx) 等價(jià)。判斷是否被定義。#    .....#else#    ..... #endif

#ifnde xxx#    .....#endif

#if SYS == 1# ...#endif#if  SYS == 1#   ...#elif   SYS == 2#   ....#elif   SYS == 3#   ...#else#   ...#endif 

#if EOF == 1#error not c99#endif

#line 1000 "abc.c"  //把當(dāng)前行號(hào)重置為 1000  文件名置為  abc.c

可變參數(shù)函數(shù)

#include"stdio.h"#include"stdarg.h"//可變函數(shù)頭文件 int sum(int geshu,...){	va_list ap;//存放參數(shù)的變量。 	int total=0;	va_start(ap,geshu);//把 ap 初始化為 參數(shù)列表。	for(int i=0;i<geshu;i++)	{		total+=va_arg(ap,int);	} 	va_end(ap);	return total;}int main(int argc,int *argv[]){	int a=sum(5,1,2,3,4,5);	printf("%d",a);	return 0;}


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉尔市| 察哈| 洛浦县| 沛县| 平潭县| 札达县| 广南县| 磐安县| 突泉县| 象山县| 沂南县| 陆丰市| 平利县| 五大连池市| 上栗县| 堆龙德庆县| 绥中县| 桐梓县| 庄河市| 四川省| 长春市| 巴林左旗| 利辛县| 小金县| 大荔县| 淳安县| 招远市| 石渠县| 青川县| 灵丘县| 图们市| 景宁| 洛阳市| 乐东| 吉安县| 三穗县| 新绛县| 精河县| 阿巴嘎旗| 洪泽县| 积石山|