C记录

来源:互联网 发布:互盾手机数据恢复 编辑:程序博客网 时间:2024/05/16 15:57

读书时C学的很好,距今10年了,最近把C重看了一遍,有需要记录的和有点忘了的整理了一下

1、实参数组的数组名(例如是a)是指针常量,不可以a++;形参数组名是指针变量,可以a++.

2、二级数组名(例如是a)是二级指针(也可以叫行指针),二级数组的一级数组(例如是a[0])是一级指针(也可以叫列指针)。三级数组类似推理

3、指向一维数组的指针(例如 int(*p)[6])是二级指针(也可以叫行指针)。

4、字符可以有字符变量,在C中不存在字符串变量,字符串是字符数组

5、字符指针定义:char *p=”I ama student!”;或者 p=”I am a student!”。

6、不能给字符数组赋值,例如chara[10];a=” I am a student!”;是非法的。字符指针不能对单个字符赋值,例如:p[1]=’p’;但是其他类型的指针可以如此。

7、读取字符数组:a[1]=’1’;或者p[1]=’1’;

8、如果字符指针指向字符数组或者字符串常量,p[1]是指字符数组或者字符串常量的第2个字符,如果字符指针未指向字符数组或者字符串常量,指的是其他的地址,p[1]将指向从位置1到’\0’的位置所有字符。

9、指针数组的定义:int *p[9];

10、  void * p是无指向的指针类型,可以对p进行显示类型转换和自动类型转换(int a=0; p=&a;),但是不能使用*p,因为void无指向,系统不知道应该把p指向多少个字节

11、  定义struct: struct Student { string name; int age} a;在使用时,都要带上struct,例如函数定义:intstruct Student MaxAge(struct Student a, struct Student b);

12、  定义union Cate{int banji;string position};如果是学生用banji,老师用position.

13、  Enum Weekday{Sunday,satayday,Monday,Tuesday,Wedsday,Thursday};默认从第一个开始是0,也可以将整体或部分指定为具体的int值。每一个选项都是常量(也是int常量)。

14、  fopen,fclose。fgetc,fputc。fgets,fputs。fprintf,fcanf。fread,fwrite。rewind(文件指针),fseek(文件指针,字节数,位置),位置[SEEK_SET|SEEK_CUR| SEEK_END],对应的是[0|1|2]。字节数可为负,必须是L型,如10L。ferror(文件指针),clearerr(文件指针)。

15、系统的标准库都不是C语言的组成部分,所有的库和其他需要连接的代码都是在编译器编译完(.obj)后,进行程序的连接时自动组成的(exe)。

0 0
原创粉丝点击