C和指针

1,传递给函数的标量参数是传值调用的
2.传递给函数的数组参数在行为上就像它们是通过传地址调用的那样
3. ADT 可以限制函数和数据定义的作用域---黑盒设计
3.限制对模块的访问时用过static 关键字的合理使用实现的,它可以限制对那些并非接口的函数和数据的访问
4.递归的两个条件:1,存在限定条件 2,每次递归后越来越接近这个限制条件
5.*(*(matrix+1)+5) *(matrix + 1)为matrix[1] 那么 原式 为*(matrix[1] + 5) matrix[1]选定一个子数组,所以它的类型是一个指向整形的指针。我们对这个指针加上5,然后执行间接访问操作。所以这个表达式还可以写成matrix[1][5]
6.int (*p)[10] 行指针
7 memset(buffer , 0 ,SIZE);
8,位段 把长度为奇数的数据包装在一起,节省存储空间。
9.联合就是把所有成员引用的是内存中的相同位置
10. *calloc(size_t num_elements,size_t element_size);
realloc (void *ptr,size_t new_size)
malloc 与calloc 之间的主要区别就是后者在返回指向内存的指针之前把它初始化为 0
11:新节点添加到链表中
newnode -> fwd = next;
this -> fwd = newnode;
newnode ->bwd = this !=rootp ? this :NULL;
(next !=NULL?next:rootp) -> bwd = newnnode;
272 ---274 页 注意 关于双链表插入的简化
12: “xyz”+1 的意思是计算“指针值加上1”的值。它的结果是个指针,指向字符串中的第二个字符:y
*“xyz”表示 x
13: srand 函数 产生伪随机数。 srand((unsigned int)time(0))
14:处理器时间 <time.h> clock 函数 返回从程序开始到执行起处理器所消耗的时间
clock_t clock(void);
15:堆栈的定义: 用户在使用静态数组类型的堆栈时并不存在错误的调用这两个函数的危险,因为它们在那个模块中并不存在
16: a)任何一个逻辑运算符的优先级低于任何一个关系运算符
b)移位运算符的优先级比算术运算符要低,但是要比关系运算符要高

 

while(( ch = getchar())!= EOF && ch != '\n')  有时候不需按 ctrl+z 

posted @ 2015-04-16 11:47  码农@163  阅读(271)  评论(0编辑  收藏  举报