
《你必须知道的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 · 1770 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--表达式
1.怎样才能避免这些未定义的求值顺序问题呢? 有几条简单的规则: 1.确保一个表达式最多只修改一个对象:一个简单变量、一个数组或者一个指针指向的位置。 2.如果一个对象在一个表达式中出现一次以上而且在表达式中被修改,则要确保对该对象的所有读访问都被用于计算它的 最终值。这条规则允许表达式i=i+1,尽管i出现了两次而且被修改了,但对i的旧值读取是用于计算i的新值。 3.如果想破坏第一条规原创 2014-05-02 21:08:32 · 2074 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--C预处理器
10.1 10.8 10.13原创 2014-05-10 16:42:14 · 1276 阅读 · 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 · 1813 阅读 · 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 · 1928 阅读 · 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 · 1728 阅读 · 0 评论 -
《你必须知道的495个C语言问题》笔记--杂项
如何进行移位操作? 因为左移操作( 右移操作(>>)会涉及到符号位出现缺位的问题,所以在有符号数的右移操作时要考虑符号位怎么补的问题。对于无符号数来说, 最左侧补0,对于有符号来说,最左侧补符号位。 实践: #include int main(void) { unsigned rui; int ri; unsigned i原创 2014-05-16 15:50:59 · 1916 阅读 · 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 · 2019 阅读 · 1 评论