《C陷阱与缺陷》读后感

《C陷阱与缺陷》读后感
这本书我在亚马逊上买过一本,放在单位了。后来,想再读,于是在淘宝上又买了一本。
这本书很簿,但很有意思
讲了一些C的内幕,感觉很好玩的。
1.为什么C赋值是有=,而相等是用==呢?
因为赋值语句出现的机率大,所以象哈夫曼编码一样,出现机率大的码就短些,好玩吧。、
2.语句
y =x/*p /* int *p  */
这里p是指向整数的指针,那上面如何理解,是x/(*p)吗?
告诉你,只是把x赋值给y。
因为C编译时,用大嘴法。当编译器读出的字符能组成一个有意义的单元时,它再读一个,看能否组成有意义单元,如果能组成,就再读一个,如此反复,就象正则表达式/\d+/匹配"12345abc"一样,/\d+/能匹配12345,因为正则表达式也是用的贪婪法。
好玩吧。
3.关于函数
p();
是调用一个函数,那
p;
是计算函数p的地址,我原来不理解函数的地址,后来才慢慢理解。
4.C语言的数组下标从0开始,为什么不从1开始呢?
原来我学数据结构时,也似懂非懂,但读了这本书,真懂了。
以下[]表示数学的闭区间,()表示数据的开区间
[10,20]里有多少个数?20-(10-1)个
(10,20]里有多少个数?20-(10)个
如果把闭的那段放左边,如下
[10,20)里有多少个呢?20-10
所以读了这本书,真理解了。
另外,计算地址时,如
int a[3][4]
p=a[0];
那a[2][1]的地址是多少呢?
a[0]+2*3+1
是不是很简单。
哈哈。
5.在《连接》一章,关于头文件也很有技巧。
就是每一个变量,都只在一个头文件中声明。凡是需要用到这个变量的地方,都需要包含这个头文件,尤其有趣的是,连定义该变量的文件也需要包含。
太妙了。哈哈哈。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值