国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 白沙| 松原市| 石狮市| 临猗县| 环江| 密山市| 弥勒县| 鄂伦春自治旗| 仪陇县| 湾仔区| 洛宁县| 海安县| 武平县| 达日县| 明光市| 南涧| 蒙自县| 裕民县| 沂水县| 嘉黎县| 防城港市| 九台市| 祥云县| 麦盖提县| 东宁县| 湘乡市| 达日县| 安西县| 新乐市| 涟水县| 武宁县| 新邵县| 上饶县| 鄢陵县| 于都县| 清水县| 临泉县| 屯门区| 察哈| 灯塔市| 南和县|