《C专家编程》学习笔记

本文深入探讨了C编程中的全局变量与静态变量的区别、K&R C与ANSIC中的类型转换保留原则、‘L’与NULL的区别,以及UTF-8作为Unicode实现方式之一的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看《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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值