C记录

读书时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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值