vlambda博客
学习文章列表

【C语言程序设计】数据的表现形式以及运算

在计算机高级语言中,数据有两种表现形式:

常量和变量


在程序运行过程中,其值不能被改变的量称为常量


常量的分类





整型|常量

整数常量可以是十进制、八进制或十六进制的常量。

前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。

整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。

如:10,0,-32,145,014,0XA4这样数据称为整型常量

038(错)——8进制数字不能含有超过8的数字   

032uu(错)——后缀重复

实型|常量

① 十进制小数形式。当使用小数形式表示时,必须包含小数点,并且必须包含整数部分、小数部分,或同时包含两者。

如:123.45,0.145,-56.45等。

120f(错)——必须包含小数点

② 指数形式。当使用指数形式表示时,带符号的指数是用 e 或 E 引入的。e或E之前必须有数字,可以是整数或小数,且e或E之后必须是整数。

如:

.e86(错)——e前面没有数字

120e(错)——e后面没有数字

14e5.6(错)——e后面必须是整数

字符|常量

①普通字符:用单撇号括起来的字符。如:'c'。

②转义字符:特殊形式的字符,以字符“\”开头的字符序列。


关于ASCII码值的输出。

a:输入ASCII码值,输出相应的字符。

eg: int a=65;

     printf(“%c”,a);

结果为A

b:输入字符,输出相应的ASCII码值。

eg: char a=’A’;

     printf(“%d”,a);

结果为65

字符串|常量

字符串字面值或常量是括在双撇号 "" 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。

如:"ABC\nXY"

eg1: “I  love  you!” 占多少个字节?

答:占11个字节 

eg2:”hello”占6个字节,包括\0字节;     

但是strlen(”hello”)是5。

eg3: char aa[12]=”hello\0hello”;

        printf(“%s”,aa);

输出的结果是“hello”。

符号|常量

这里使用#define指令,指定用一个符号名称代表一个常量。

如:#define  PI  3.1416

在对程序进行编译前,预处理先对PI进行预处理,将所有的PI置换为3.1416


#define  R(x)  x+x

z=3*R(4);

这里宏定义起到一个替换的作用,所以z等于3*4+4,结果为16。


变量代表一个有名字的、带有特定属性的存储单元


变量定义

变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表。定义的变量可以由一个或多个标识符名称组成,多个标识符之间用逗号分隔。

int   i, j, k; 

常变量

C99允许使用常变量,方法是在定义变量时,前面加一个关键字const。

常变量具有变量的基本属性:有类型,占存储单元。但是不允许改变其值。

如:const  float  pi=3.1416;

这里需要区别常变量与符号常量的区别

标识符

C语言的标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。

a.一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

b.C 标识符内不允许出现标点字符,比如 @、$ 和 %。

c.C 是区分大小写的编程语言。因此my_idea和My_idea是两个不同的标识符。

d.C中关键字是不可以作为标识符的。例如break,case,while.(关键字见下)


【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算

关键字总结  

数据类型

我们在定义变量时需要指定变量的类型,所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式,不同的类型分配不同的长度和存储形式。

【C语言程序设计】数据的表现形式以及运算

拓展

CPU能够读懂最小单位:比特位,bit ,b。

内存机构的最小寻址单位:字节,Byte ,B。

B——K——M——G。进制是1024。

一个字节占8个二进制位。








程序中,对数据进行加工处理,就要使用运算符

用运算符和括号将运算对象连接起来就是表达式

自增和自减运算符

++i:       i=i+1(使用的i是+1后的i)     

--i:        i=i-1(使用的i是-1后的i)

i++:       i=i+1(使用的i是+1前的i)     

i--:        i=i-1(使用的i是-1前的i)

强制类型转换

形式:(类型名)(表达式)

如:(float)(5%3)

        (int)a

赋值运算符

形式:变量   赋值运算符   表达式

赋值运算符的左侧应该是一个可以修改值的“左值”,左值应当为存储空间并可以被赋值。

变量可以是左值,但是表达式和常量不可以是左值。

【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算
【C语言程序设计】数据的表现形式以及运算

// 运算符优先级

数据的输入和输出

输出函数printf

printf函数:向终端输出任意类型的数据。

printf函数格式:printf(格式控制,输出列表)


a.格式控制:是用“”包括的一个字符串,它包括两个信息,一个是格式声明,由%加格式字符(附录8)构成。第二是普通字符,保持原样输出。

b.输出列表是需要输出的数据,可以是常量,变量或者表达式。

%d:输出有符号的十进制整数

%c:输出一个字符

%s:输出一个字符串

%f:输出一个单、双精度、长双精度的实数。整数部分全部输出,小数部分输出6位。

%m.nf:指定最短长度为m,小数部分长度为n。不够m的向右补齐,左边空

%-m.nf: 指定最短长度为m,小数部分长度为n。不够m的向左补齐,右边空

%e:小数部分占6位,指数部分占5位

%i:和%d一样。

%o:输出8进制整数

%x:输出16进制整数

%u:输出无符号型整数数据

%g:输出浮点型数据,系统自动决定选用%f还是%e形式输出。

输入函数scanf

(1)格式控制:是用“”包括的一个字符串,它包括两个信息,一个是格式声明,由%加格式字符(附录8)构成。第二是普通字符,保持原样输入。

(3)输入字符串时候,判断输入截止,enter键

 ①多个字符依次输入,就是每个字符按照%c的格式输出。可以输入空格、table、换行符。字符数足够时,enter键结束。

 ②字符串按照%s输入时,(空格、table、换行符不可以输入)没有输入,遇到enter不结束。enter也不录入。有输入字符,遇到空格、table,表示字符串str终止,依然可以输入,但是不再传给该字符串了。遇到enter键,结束。