最近在看《C专家编程》这本书,网上的评价还是挺高的,上面一些知识我还是知道些,打算尽快看完,好进行下一步的学习计划。
1、全局变量和静态变量的区别
从四方面:一为修饰符,二为存储地址,三为生命周期,四为外部可访问性。
修饰符:全局变量在源文件的函数外部声明(不含extern),但若其它源文件要调用这个变量,就需要通过extern关键字来引用一下。静态变量用static来修饰;
存储地址:两者都是存储在静态存储区,非堆栈上,它们与局部变量的存储分开; 关于内存分配,参看网站http://www.cppblog.com/elva/archive/2009/10/30/99811.html
生命周期:两者都是在程序编译时或程序装入时由系统自动分配的,程序结束时消亡;
外部可访问性:全局变量在整个程序的任何地方均可访问,而静态变量相当于面向对象中的私有变量,它的可访问性只限定于声明它的那个源文件,即作用域仅局限于本文件(静态函数也一样);
2、K&R C和ANSI C两种不同C中,类型转换的保留原则
K&R C:无符号保留,当无符号变量与其他有符号变量运算,结果保留无符号
ANSI C:有符号保留。
使用哪种C,要看具体编译器支持哪种。
3、一个“L”和NUL和两个“L”的NULL区别
NUL:结束一个ASCII字符串
NULL:什么也不指向(空指针)
4、utf-8是unicode的实现方式之一
有关ASCII、UNICODE、UTF-8的关系,参看博客http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html