c语言学习笔记续

本文介绍了C语言的编译过程,包括预处理、编译、汇编和链接四个阶段。同时,详细阐述了C语言的源代码字符集和运行字符集,以及它们在不同实现中的可能差异。基本字符集包括拉丁字母、数字和29个符号,以及五种空格符。C语言的格式化输入/输出以printf函数为例,讲解了如何通过格式串和转换说明控制输出格式。此外,文章还提及了整数除法向下取整的规则以及转义字符的使用。
摘要由CSDN通过智能技术生成

字符集

对应c语言的编译过程:预处理,编译,汇编,链接

编译器转换源文件时,编译器所处的环境称为编译环境,编译器执行时,所处的环境被称为运行环境,对于c语言来说编译环境和执行环境不同,c定义了两个字符集,源代码字符集是用于组成c源代码的字符集合,而运行字符集是可以被执行程序解释的字符集合,在许多的c的实现版本中这两个字符集是一样的,不一样的话,编译器把源码中的字符和字符串字面值转换成运行字符集中对应元素

这两种字符集都包含基本字符集, 扩展字符集,c语言没有指定字符集通常由所在的语言决定,扩展字符连同基本字符集,就形成扩展字符集

基本源代码字符集和基本运行字符集都包含下面的字符型

拉丁字母

A-Z,a-z

十进制阿拉伯数字

0-9

下面29符号

用在最通俗易懂的话来讲就是通常键盘上字母键上除了@和$,`其他符号都是
!# % ^ & * ( ) _ = - + { } [ ] | \ : ; " ’ < > , . ? /

五种空格符

空格 水平制表符(tab) 垂直制表符 换行 换页(form feed)

基本的运算字符集还包括四个不可打印的字符,作为字符串结束符的空(null)字符,警报(alert),退格(backspace)以及CR回车,为了在字母和字符串中表示这些字符,输入对应的转义符(escape sequence)即可,这些转义符都是反斜线开始的:“\0”表示空符,“\a"表示警报,”\b“退格,“r"表回车

不同厂商的c实现版本可能使用不同的字符码

  • 基本字符集中的每个字符必须用一个字节(byte)表示。
  • 空字符是一个字节,其所有的位都是0.
  • 0之后的每个十进制数字,编码都是依次比前者大1

c语言原来是在英文环境中设计的,主要的字符集是7位的ASCII码,


在整数与整数相除时,c语言会向下取整


格式化输入/格式化输出

printf被设计用来显示格式串的内容,并且在该串中的指定位置插入可能的值,调用printf函数时必须提供格式串,格式串后面的参数是需要在显示时插入到该串中的

printf(格式串,表达式1,表达式2,…)

显示的值可以是常量,变量或者是更加复杂的表达式,调用printf函数一次可以打印的值的个数没有限制

c语言编译器不会检测格式串中转换说明的数量是否和输出项的数量相匹配,转换格式串大于值出现的问题,总之一句c语言不会进行检查一切由你来决定,c语言是最自由的

一般的转化说明可以包含格式化信息,可以用%m.pX格式或%-m.pX格式,这里的m和p都是整数常量

最小字段宽度,m制定了要显示的最少字符数量,如果要显示的数值所需字符少于m,那么值在字段内是右对齐(换句话说,在值前面放置额外的空格),如果要显示的值所需字符数多于m,则会自动扩展为所需尺寸

精度(precision)p的含义很难描述,因为它依赖于转换说明符X,X表明在显示数值前需要对其进行那种转换

d----表示十进制形式的整数,p指明了待显示的数字的最少个数,如果省略p,则默认它的值为1.

e—表示指数(科学计数法)形式的浮点数,p指明了小数点后应该出现的数字的个数

f–表示“定点十进制"形式的浮点数,没有指数,p的含义与说明符e中的一样

g—表示指数形式或定点十进制形式的浮点数,形式的选择根据数的大小决定,p说明可以显示有效数字与转换说明符f不同,g的转换将不显示尾随的零,通常程序在无法预知数的大小时或数值变化范围很大的情况下使用g特别有用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值