1.exit()是一个库函数;exit(1)是出错退出;exit(0)正常退出;
2.
int (*p)( );
类型说明符 (*指针变量名)(形参列表)
3.特别注意
int (*p)();
是一个变量说明,说明P是一个指向函数的指针变量;
而int *p();
是函数原型,说明p是(一个指针型)函数,起返回值是个指向整型变量的指针;
4.
int *p;
p=(int *)malloc(10*sizeof(int));//并不初始化
void *calloc(unsigned int n,unsigned int size);//初始化为0;
void free(void *p);
void *realloc(void *p,unsigned int size);
包含在stdlicb.h中
最好在同一函数中分配与释放
5.重定向:将标准设备文件指定为其他设备文件
6.从文件中读取信息:getc/fgets/fread/fscanf
向文件中写入信息:putc/fputs/fwrite/fprintf
int getc(FILE *fp) ;int putc(FILE *fp);
char *fgets(char *str,int length,FILE *fp);
char *fputs(char *str,FILE *fp);
fgets从fp指向的文件读出字符串,一直读到换行符orz第(length-1)个字符为止,如果
读入换行符,它将作为字符串的一部分,切以空字符NULL结束。如果成功,返回指向读取的字符串的
地址,否则返回一空指针。
fputs写入字符串,成功时返回0,否则非0;
int fread(void *buffer,int size,int n,FILE *fp)
int fwrite(void *buffer,int size,int n,FILE *fp)
7.
struct device
{
unsigned active:1;
unsigned ready:2;
unsigned error:2;
}der_code;
low 4 bits unused;
一个位域必须存在同一字节,不能跨两字节;一节所剩的空间不够时从下一字节存储;
8.
union data
{
char ch;
int num;
long lnum;
}value;
sizeof(value) = 4 字节
value.num = 100;
union entry{
struct book{
char author[20];
char title[40];
}book;
struct article
{
char author[20];
char title[40];
char journal[40];
}artic;
}info;
联合变量的存储空间就是占用最大存储空间的某个成员所需的存储空间。
enum color{
black,blue,red,orange,green,white
};
enum color col;
//允许初始化和拷贝赋值
9.
char str[] = "hello";//right
scanf("%str",str);//注意数组大小
str="love";//error,不能直接对字符数组赋值;
char *a = "hello";
a = "I love China";//right;
a[2] = 'r';
b[2] = 'r';//wrong
b=a;
b[2]='r';//right
指针数组:
int *pd[5];//定义了一个指针数组,他有pd[0]~pd[4]共五个数组元素组成,每个元素都是一个指向整型数据的指针;pd[2] = &value;
i = *pd[2];-->等效-->i = value;
两种方法:指针数组+二维数组
char status[][16] =
{
"write error",
"read error",
"calculate error",
"other error";
};
status[2]-->calculate error
char *status[] =
{
"write error",
"read error",
"calculate error",
"other error"
};
*(status[i] + j)-->*(status[2] + 4)-->u
each array pointer point a const string(they are stored in const store erea)常量存储区
int a[4] = {1,2,3,4};
int *pa[]={&a[0],&a[1],&a[2],&a[3]};
int **pp = pa;
10.
int *rp(int x,int y)
{
//表示rp是一个返回指针的“指针型函数”,他返回的指针指向一个整型变量;
}