原创 【博客大赛】《C和指针》摘抄整理型笔记二

2014-10-9 16:05 1624 15 16 分类: 处理器与DSP 文集: C和指针

/*

读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……

现在正在研读《C和指针》,其中有很多我认为必要的知识点,摘抄并简单整理了一下,记录在这里。

*/

11. 位操作技巧:

value |= 1 << bit_number;    /*指定位置1*/

value &= ~( 1 << bit_number ); /*指定位清0*/

 

12. 知识点1

if(a>5)

  b = 3;

else

  b = -20;
   
可以写成: b = a > 5 ? 3 : -20;

知识点2

sizeof(a)返回的a的长度是字节数。

/*这里记录的两个知识点是最最基础的C语言点,之所以记录在这里,是因为自己的基础知识不牢固,在某次面试时被这些基础知识所虐。记录于此,起个警示作用吧*/

 

13. 变量的值就是分配给该变量的内存位置所存储的数值,即使是指针变量也不例外。

 

14. 所谓左值与右值——左值是那些能够出现在赋值符号左边的东西,右值是那些可以出现在赋值符号右边的东西。

 

15. 把整型值25存放在地址100的位置中:

*(int *)100 = 25;

首先将100强制转换成“指向整型的指针”类型,再进行间接访问。

 

16. 实际上,绝大多数编译器都不会检查指针表达式的结果是否位于合法边界之内。因此,程序员应该负起责任,确保这一点。类似,编译器将不会阻止你取一个标量变量的地址并对它执行指针运算,即使它无法预测运算结果所产生的指针指向哪个变量。越界指针和指向未知值的指针是两个常见的错误根源。当你使用指针运算时,必须非常小心,确信运算的结果将指向有意义的东西。

 

17. 声明一个指针变量并不会自动分配任何内存。在对指针执行间接访问前,指针必须进行初始化;或者使它指向现有的内存,或者给它分配动态内存。对未初始化的指针变量执行间接访问操作是非法的,而且这种错误常常难以检测。其结果常常是一个不相关的值被修改。这种错误是很难被调试发现的。

 

18. 使用函数原型最方便(且最安全)的方式是把原型置于一个单独的文件,当其他源文件需要这个函数的原型时,就使用#include指令包含这个文件。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1756822 2014-10-22 07:34

最后一条不太理解,为什么是最安全呢
相关推荐阅读
飞言走笔 2017-01-06 21:56
2017,新的博客旅程
EDNChina 改版终于成功了!祝贺! 2017年,开始新的旅程~ ...
飞言走笔 2016-06-01 10:17
【博客大赛】《白鹿原》读后
《白鹿原》这本书已经买了很久,多次以来,都是只翻看几页,顶多几章就放下了,觉得这是一个大部头,得有足够的时间才行。前几天陈忠实先生去世的消息传来,让我很震惊和惭愧。 一口气读完这本书,畅快淋漓,又意...
飞言走笔 2016-03-26 16:42
【博客大赛】《毛斯朝》读后
这本书最早是在凤凰卫视曾子墨主持的一期关于沈志华先生的《世纪大讲堂》节目中知晓的。但是一直拖到今天才读完。 说实话,书的主要内容与当前官方的宣传口径有很多不一致的地方,而沈先生作为中国掌握苏联档...
飞言走笔 2016-03-08 13:46
【博客大赛】蓝牙4.0低功耗技术及其认证要求
详见附件 ...
飞言走笔 2016-02-02 14:20
【转】蓝牙4.0协议官方手册(一)——通用属性配置文件
转自:http://blog.csdn.net/jinzhichaoshuiping/article/details/43370009 通用属性配置文件 (GATT)——该说明书定义了通用属性配置...
飞言走笔 2016-01-31 23:24
【博客大赛】脑洞大开、三观重塑——《人类简史》读后
终于读完了《人类简史》,没有把这本书拖到二月份,这也是2016年读完的第一本书。之前也有所耳闻,但是没有太在意,倒是罗胖子的跨年演讲上偶然提到,不知怎么就勾起了阅读此书的欲望。 本文的标题用了“脑洞...
EE直播间
更多
我要评论
1
15
关闭 站长推荐上一条 /3 下一条