C语言回顾

 

1. 数据类型对应的字节数

          数据类型              字节数

   (unsignd)char                  1

    Short int                       2

               Int               4

          Long int                    4

          Long long int             8

        Float                        4

          Double                     8

         Long double              12

2. 读取数据格式指定符:

Short       %hd;

Int             %d;

Float   %f或者%e;

Double       %lf或%le;

在字符串中用%s表示输出连续的字符直到遇到/0字符为止;

3. 每个字符串的末尾都添加了代码值为0的特殊字符,写作“/0”称为空字符;例如:

Char saying[20]

这条语句的声明的saying变量可以存储一个至多包含19个字符的字符串,因为必须给终止字符提供一个数组元素。当然也可以使用这个数组存储20个字符,那样就不是字符串了。因为“/0”的ASCII码是0对应的布尔值为false。

4. 指针(pointers):指针p含有一个变量number的地址,变量number是一个值为5的整数变量,存储在p中的地址是number第一个字节的地址。

5. 类型名void表示没有指定类型,所以void * 类型的指针可以包含任意类型的数据项地址。

6. int *pointers=NULL;NULL是在标准库中定义的一个常量,对于指针它表示0;

NULL是一个不指向任何内存位置的值。

声明指针时一定要初始化它们。使用未初始化的指针存储数据项是很危险的。

7. 在使用scanf()输入数值时,使用了&运算获取传给函数的地址。有了一个含有地址的指针后,只需要使用这个指针的名字作为参数就可以了。

8. 指向常量的指针:

long value=9999L;

const long *pvalue=&value;

其中,指针所指向的变量内容不能修改;

常量指针:

int count=43;

int *const pcount=&count;

其中 指针的内容(即变量的地址)不能修改;

(最好将p作为指针名的第一个字母)

9. 在声明二维数组时,在第一维[n1] 的后面放置第二维[n2],编译器就会创建一个大小为n1的数组,他的每个元素是一个大小为n2的数组。

10. 二维数组时:数组的名称并不能表示其真正的地址:(注意)

二维数组索引图

Board

0

1

2

0

board[0][0]

*board[0]

** board

board[0][1]

*(board[0]+1)

*(* board+1)

board[0][2]

*(board[0]+2)

*(* board+2)

1

board[1][0]

*(board[0]+3)

*board[1]

*(* board+3)

board[1][1]

*(board[0]+4)

*(board[1]+1)

*(* board+4)

board[1][2]

*(board[0]+5)

*(board[1]+2)

*(* board+5)

2

board[2][0]

*(board[0]+6)

*(board[1]+3)

*board[2]

*(* board+6)

board[2][1]

*(board[0]+7)

*(board[1]+4)

*(board[2]+1)

*(* board+7)

board[2][2]

*(board[0]+8)

*(board[1]+5)

*(board[2]+2)

*(* board+8)

11. 在程序的执行期间分配内存时,内存区域中的这个空间称为堆(heap)。另一个内存区域,称为栈(stack),其中的空间分配给函数的参数和本地变量,在执行完该函数后,存储参数和本地变量的内存空间就会释放。堆中的内存是由程序员控制的。在分配堆上的内存时,由程序员跟踪所分配的内存何时不再需要,并释放这些空间,以便以后重用它们。

12.malloc()函数:使用malloc()函数需指定要分配的内存字节数作为参数。这个函数返回所分配内存的第一个字节的地址。使用指针:

int *pNumber=(int *)malloc(100)

因此,在编写程序过程中,最好先用if语句检查请求动态分配内存的否分配,例如:

int *pNumber=(int *)malloc(75,sizeof(int))

13. realloc():重新分配内存,例如:

pdata=(long *)realloc (pdata,sizeof(long)*count)

14. free(void *)释放内存地址;

 

15. 转义序列:

/n 换行;

/r 回车;

/b 退后一格;

/f 换页;

/t 水平制表符;

/v 垂直制表符;

/a 发出鸣响;

16.  Sizeof:使用sizeof()运算可以确定的类型占据多少字节;

17.    Break :该语句它的作用是终止switch块中代码的执行,并继续执行跟在switch后的第一行语句

Continue:进入下次循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值