您的位置:首页 > 编程语言 > C语言/C++

5、C语言深度学习笔记--C语言中的基本元素

2018-03-24 16:03 459 查看
一、C语言中的字符集
1、⼀般来说,编程语⾔的字符集都可分为两组:⼀组叫源字符集,另⼀组叫执⾏字符集。所谓“源字符集”是指在写C源代码时⽤的字符集,也就是呈现在C源⽂件中的字符集。⽽“执⾏字符集”是指编译构建完源⽂件后的⽬标⼆进制⽂件中所表⽰的字符集,它将⽤于运⾏在当前的执⾏环境中。⽐如,我们在控制台或者GUI窗⼜视图上所看到的⽂字信息就属于执⾏字符集。

二、C语⾔中的token
1、在编程语⾔中经常会涉及“token”这个词,token这⾥不是指⽹络通信中所谓的“令牌”,⽽是⽤于词法解析的,通过指定⼀个词位(词的单位)的类别来结构化表⽰该词位。如以下代码:
//
int a = 3 << 2;
//这⾥就有7个token,分别是:int、a、=、3、<<、2以及最后的分号;。这⼀⾏代码中就已经列出了C语⾔中的常⽤⼏种token,分别是关键字(int)、标识符(a)、字⾯量(3和2)、操作符(=和<<)、其他标点符号(;)。

三、C语言中的“对象”--变量与常量
1、C11标准将“对象”定义为执⾏环境中的数据存储区域,对象中的内容⽤于表达它的值。当引⽤了某⼀对象时,该对象就可称为具有⼀个特定类型。⾔下之意,C语⾔标准中的“对象”是指数据实体,⽽不是⼀个函数。此外,它具有⼀个特定的存储区域,⽆论是在寄存器中还是在存储器中。另外,它具有⼀个特定的类型。
2、这⾥的“对象”与⾯向对象编程语⾔所涉及的对象概念有些差别,不过从范围上来讲,这⾥的“对象”⽐⾯向对象中的对象范围更⼴。从总体上将对象进⾏划分可分为两⼤类——变量和常量。
3、在C语⾔实现中,常量可以被写⼊ROM,尤其对于嵌⼊式设备⽽⾔,更有可能如此。这样,⼀旦对某个常量对象进⾏修改,那么系统会直接发出异常。⽽在通⽤桌⾯操作系统中,常量也被分配在RAM中,所以我们仍然可以通过类型转换或是其他奇技淫巧对常量对象进⾏修改,不过后果是⽆法预估的。

四、C语⾔中的“副作⽤”
1、在很多编程语⾔中都会提到“副作⽤”(side effects)这个概念。在C11标准中对副作⽤是这么描述的:对⼀个易变对象的访问、对⼀个对象的修改、对⼀个⽂件的修改,或调⽤⼀个函数,所有这些操作都具有副作⽤。副作⽤对执⾏环境中的状态做了改变。对⼀个表达式的计算通常包含了对值的计算以及对副作⽤的初始化。对⼀个左值表达式的值计算包含了判定该表达式所表⽰对象的标识。
2、通常来讲,所谓副作⽤就是在C源代码中的某⼀条表达式在⽬标程序中执⾏时,对当前程序的执⾏状态产⽣了或潜在产⽣改变,那么我们称该表达式产⽣了副作⽤。

五、C语⾔标准库中的printf函数
1、函数原型//
int printf(const char * restrict format, ...);
//2、此函数第⼀个参数format是⼀个字符串格式符,后⾯的省略号表⽰不定个数的参数,这些参数的数据类型需要分别与format所指向的字符串中的格式匹配。函数最后返回的是⼀个int类型整数,表⽰被传递到控制台的字符的个数。如果输出或者字符串编码发⽣错误,那么该函数将返回⼀个负值。
3、常⽤的format字符串中的格式符如下:
(1)%c:对应参数是⼀个int类型,但实际运⾏时会将该int类型对象转换为unsigned char类型。
(2)%d:对应参数是⼀个int类型。
(3)%f:对应参数是⼀个double类型。
(4)%ld:对应参数是⼀个long int类型。
(5)%s:对应参数是⼀个const char*类型,表⽰输出⼀个字符串。
(6)%u:对应参数是⼀个unsigned int类型。
(7)%zu:对应参数是⼀个size_t类型。
(8)%td:对应参数是⼀个ptrdiff_t类型。
(9)%x(或%X):对应参数是⼀个int类型,不过会以⼗六进制形式输出,其中⼤于9的数字根据字母x⼤⼩写进⾏转换,如果是%x,则⼤于9的数⽤a~f表⽰;如果是%X,则⽤A~F表⽰。
(10)%%:输出⼀个%符号。

致谢
1、《C语言编程魔法书》作者 陈轶
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: