C专家编程 读书笔记1

来源:互联网 发布:客户关怀软件 编辑:程序博客网 时间:2024/06/04 17:41

1. 早期的C 1972-3

K&R C   1976-9

ANSI C   1983-9 (ANSI美国国家标准化组织)

 

2. const的使用:

const int limit = 10;

const int *limitp = &limit;

int i = 15;

limitp = &i;

         printf("%d\n", *limitp);

以上程序,输出结果为15

   limitp是一个指向常量整型的指针,这个指针不能用于修改这个整型数,但是在任何时候,这个指针本身的值却是可以改变的

const作为限定符,只表示不能被赋值,也就是说它的值对于这个符号来说是只读的。const可以用来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。

 

3.不要仅仅因为无符号数不产生负值(如年龄、国债)而用它来表示数量;

例子:

#define TOTAL_NUM  ( sizeof(array) / sizeof(array[0]) )

int d = -1;

if(d <= TOTAL_NUM)

  。。。

else

  xxx

本例,会执行else的判断,因为d会被转换为无符号类型

4. 限定符问题

char *cp;

const char *ccp;

ccp = cp;

规定:赋值如果要合法,必须满足二者之一:

    1. 两个操作数都是指向有限定福或无限定符的相容类型的指针;

    2. 左边指针所指向的类型必须具有右边指针所指向类型的全部限定符;

本例:

    左操作数所指向的类型具有右操作数所指向的类型的限定符(),但是反过来就不能赋值

0 0