C语言编译过程及数据类型

写在前面

C语言可以称得上是高级语言中的低级语言,接下来一段时间,我会写一下文章关于c语言,把它的神秘面纱一 一揭开。下面主要是c语言的C语言编译过程及数据类型

源文件编译过程

  • 为了使计算机能执行高级语言源程序,必须先用一种称为“编译程序”的软件,把源程序(.c)翻译成二进制形式的“目标程序”(.obj),然后将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序(.exe)
    例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件 f.c 输入,经过编译得到目标程序文件 f.obj,再将目标程序文件 f.obj 输入内存,与系统提供的库函数等连接,得到可执行的目标程序文件 f.exe,最后把 f.exe 调入内存并使之运行。

数据类型

整数类型

6种整型变量

  • [signed] int 有符号基本整型
  • unsigned int 无符号基本整型
  • [signed] short [int] 有符号短整型
  • unsigned short [int] 无符号短整型
  • [signed] long [int] 有符号长整型
  • unsigned long [int] 无符号长整型
    区别在于是否有符号位,无符号类型在正数部分比有符号多一倍

实数(浮点数)

表示方法

  • 十进制小数形式
  • 指数形式。如123e3,e前必须有数字,后面必须为整数

3种实型变量

  • float 单精度
  • double 双精度
  • long double 长双精度

字符变量

字符变量类型

  • char

字符数据在内存中的存储

将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中

char转为整数型

有些系统如 pdp,Vax-11,turboc 将字符变量中的最高位作为符号位,也就是将字符处理成带符号的整数,即signed char型。它的取值范围是-128~127。如果使用ascii码为0~127间的字符,由于字节中最高位为0,因此用%d输出时,输出一个正整数。如果使用ascii码为128~255间的字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。例如:

  char c=130;
  printf(“%d”, c);

得到-126。如果不想按有符号处理,可以将字符变量定义为 unsigned char 类型, 这时其取值范围是 0~255。signed char 和 unsigned char 的含义及用法与 signed int 和unsigned int 相仿, 但它只有一个字节。

字符串与字符区别

c 规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符‘\0’作为字符串结束标志。‘\0’是一个ASCII码为0的字符,从ascii代码表中可以看到ascii码为0的字符是“空操作字符”,即它不引起任何控制动作,也不是一个可显示的字符。如果有一个字符串“CHINA”,实际上在内存中是

C H I N A \0

它的长度不是5个字符,而是6个字符,最后一个字符为‘\0’。但在输出时不输出‘\0’

字符串表示

如果想将一个字符串存放在变量中,以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。

各类数值型数据的转换图

1162337-20170924191947165-120146023.png

转载于:https://www.cnblogs.com/cleanwaterjx/p/7588170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值