很久以前的C语言笔记

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是一个返回指针的“指针型函数”,他返回的指针指向一个整型变量;
}



转载于:https://my.oschina.net/hyb007/blog/311907

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值