《你必须知道的495个C语言问题》笔记
文章平均质量分 71
TODD911
热爱计算机
展开
-
《你必须知道的495个C语言问题》笔记--结构、联合和枚举
1.如何向接受结构参数的函数传入常量值?c99标准中引入“复合字面量”(compound literals),它的一种形式就可以允许结构常量。例如,向假定的plotpoint函数传入一个坐标对常量。plotpoint((struct point){1,2});与制定初始式结合,也可以用成员名称确定成员值:plotpoint((struct point){.x=1, .y=2});原创 2014-04-29 13:44:20 · 1747 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--表达式
1.怎样才能避免这些未定义的求值顺序问题呢?有几条简单的规则:1.确保一个表达式最多只修改一个对象:一个简单变量、一个数组或者一个指针指向的位置。2.如果一个对象在一个表达式中出现一次以上而且在表达式中被修改,则要确保对该对象的所有读访问都被用于计算它的最终值。这条规则允许表达式i=i+1,尽管i出现了两次而且被修改了,但对i的旧值读取是用于计算i的新值。3.如果想破坏第一条规原创 2014-05-02 21:08:32 · 2041 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--C预处理器
10.110.810.13原创 2014-05-10 16:42:14 · 1243 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--数组和指针
一.如何动态分配多维数组?1.分配一个指针数组,然后把每个指针初始化为动态分配的行代码如下: int **array = (int **)malloc(ROW * sizeof(int*)); int i = 0; for(i=0; i<ROW; i++){ array[i] = (int *)malloc(COL原创 2014-05-10 16:09:24 · 1784 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--标准输入输出
getchar的返回值这样的代码有什么问题:char c;while((c = getchar()) != EOF)....getchar返回值变量必须是int型。因为EOF通常定义为-1,二十进制为255的字符会被符号扩展,和EOF比较时会相等,从而过早第结束输入。feof函数的使用为什么这些代码最后一行复制了两遍?#include #inclu原创 2014-05-10 18:47:52 · 1907 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--声明和初始化
1.定义一对相互引用的结构typedef struct {int afield;BPTR bpoint;} *APTR;typedef struct {int bfield;BPTR apoint;} *BPTR;编译时会出错。正确使用方法:1.struct b;typedef struct {int afield;struct b *bpoi原创 2014-04-24 20:17:27 · 1699 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--杂项
如何进行移位操作?因为左移操作(右移操作(>>)会涉及到符号位出现缺位的问题,所以在有符号数的右移操作时要考虑符号位怎么补的问题。对于无符号数来说,最左侧补0,对于有符号来说,最左侧补符号位。实践:#include int main(void){ unsigned rui; int ri; unsigned i原创 2014-05-16 15:50:59 · 1893 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--库函数
怎样把数字转为字符串(与atoi相反)?有itoa函数吗?用sprintf就可以了:sprintf(string, "%d", number);同理,也可以同sprintf把long型或浮点型转换成字符串(使用%ld或%f),也就是说,可以把sprintf看成是atol或者atof的反函数。怎样在日期上加n天?怎样取得两个日期的时间间隔?第一个问题,mktime接受没有原创 2014-05-16 15:19:07 · 1977 阅读 · 1 评论