04-数据类型、常量、变量
- 格式:docx
- 大小:2.75 MB
- 文档页数:7
⼆、变量与基本数据类型(数字类型,字符类型)⼀、变量与常量1.1 常量在程序执⾏过程中,其值不能被改变常量⼀般出现在表达式或者赋值语句利⽤const 修饰的变量为常量,不可修改利⽤define定义的⼀般为常量,定义时候不需要分号利⽤extern修饰的量知识声明,⽽没有定义,故没办法对其赋值1.2 变量1.2.1 变量的概念变量相当于内存中⼀个数据存储空间的表⽰,可以把变量看做是⼀个房间的门牌号,通过门牌号就能找到房间。
同样的通过变量名我们就能访问到变量的值。
可以简单理解 y=x。
未知数x就是变量,当x取值时,就是确定门牌号了,就能求出y的值,也就是能找到房间在哪了。
1.2.2 变量的使⽤1. 声明变量(定义变量)2. 给变量赋值3. 使⽤变量1.3 变量的地址/*1.取地址运算符 &2.取变量地址 &a3.输出地址printf("%p", &a); // 0014ff20 %p,就是以地址形式(16进制)输出printf("%#p", &a); // 0x0014ff20 %#p,就是以地址形式输出,加上前缀0x*/1.4 变量的输⼊(scanf)1.4.1 单个输⼊scanf("%d", &a);/*1、scanf()2、%d 这个⼀定要跟变量a类型对应上3、&a⼀定要加取地址\4、回车结束输⼊*/scanf("%f", &b);1.4.2 多个输⼊/*1. scanf("%d%d", &a, &b); 输⼊两个数的情况可以⽤空格隔开2. 分隔符:转义字符中间⽤什么隔开,输⼊的时候就⽤什么分开例如:scanf("%dasd%d", &a, &b); 控制台:12asd13 否则输⼊第⼆个数据会失败3. 注意点1、scanf("%d%d\n", &a, &b); 不要加换⾏2、分隔符,⼀定要跟程序⾥⼀样3、格式化字符%d 这个⼀定要跟变量a类型对应上*/⼆、数据类型在我们的程序⾥,不同类型的数据,都对应⾃⼰的⼀种特有的数据类型,整数就是整型数据类型,⼩数就是浮点型数据类型,⼀句话叫字符型数据类型,等等三、基本数据类型3.1 整型(int)3.1.1 整型的输出整型:就是整数, 5, -10, 0, 520, 1314, 77, 331我们写个整数,默认就是int类型的数据,或者说计算机就会以int类型来处理它// 整型的输出#include <stdio.h>int main(void) {printf("%d\n", 12); // %d 代表整型,格式化输出符号,以10 进制整型形式输出printf("%o\n", 12); // %o 以8 进制整型形式输出 14printf("%x\n", 12); // %x 以16 进制整型形式⼩写输出 cprintf("%X\n", 12); // %X 以16 进制整型形式⼤写输出 Creturn0;}问题:如果我们需要的是另⼀个数,这样的话上⾯的输出每⼀个12都需要修改,这样就很⿇烦了。
填空题1、VHDL语言的文字(Literal)主要包括数值型文字和标识符。
2、在VHDL语言的以数字基数表示的文字中,十进制计数的1582的表示方法是10#158#2。
3、在数位字符串中,B为二进制基数符号;O为八进制基数符号;X为十六进制基数符号。
4、下标用于指示数组型变量或信号的某一个元素。
5、VHDL语言的注释以--来表示。
6、VHDL语言中主要有4类基本的数据对象:常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)和文件(FILES)。
7、在对信号进行赋初值时,使用:=表示没有延时,使用<=表示有延时。
8、VHDL是一种强类型语言,要求每一个数据对象必须具有确定的唯一的数据类型,而且只有数据类型相同的量才能互相传递和作用。
9、VHDL语言的数据类型按照数据来源来分,可以分为VHDL语言预定义的标准数据类型和用户自定义的数据类型。
10、位类型实际上是一个二值枚举型数据类型,只有两个可能的取值:0和1,用于表示逻辑0和逻辑1。
11、标准逻辑位类型是在IEEE的STD_LOGIC_1164程序包中定义的。
12、布尔类型和位类型类似,实际上是一个二值枚举型数据类型,有两个可能的取值:TRUE(真)和FALSE(假)。
13、VHDL语言中主要有4类操作符:逻辑操作符(LOGIC OPERATOR)、关系操作符(RELATION OPERATOR)、算术操作符(ARITHMETIC OPERATOR)和重载操作符(OVERLOADING OPERATOR)。
综述题1、VHDL语言的数字型文字主要有哪几种表达方式,并且举例。
答案:●整数型文字,如:1,123,518E2,12_345_678。
●实数型文字,如:12.3,6.5E-2,12_23.45_32。
●以数字基数表示的文字,如:10#158#2。
●物理量文字,如:60s,1km。
2、VHDL语言标识符有哪些书写规范?•2 •答案:●有效字符:英文字母('A'-'Z','a'-'z')、数字('0'-'9')及下划线“_”。
数据类型与常量、变量1Java的数据类型分为两大类,基本数据类型和引用数据类型基本数据类型: Int float char boolean引用数据类型: array class interface2基本数据类型所占字节byte1short2整数类型int 4long8浮点数类型表示数学中的实数,即带小数点的数1标准计数法 由整数、小数点和小数部分组成2科学计数法 由尾数、E或e及阶码组成,如2.float 单精度浮点数double双精度浮点数java 中一个浮点数默认类型为double,要表示一个数为float型,34.5f字符类型char表示unicode字符,一个字符占16位1用单引号括起来的单个字符,如‘A’ ‘a'2用Unicode码表示,前缀是\u,如 "\u0043"表示‘3Unicode字符集中的控制字符,不能通过键盘输入\b 退格\t 水平制跳格\n 换行\f 换页\r 回车4由多个字符组成的字符序列称为字符串,字符串用双引号括布尔类型boolean 表示逻辑量,称为逻辑类型只有true 和false两个值布尔类型值只占一个字节常量指在程序运行中其值始终保持不变的量。
直接常量26 47.3 'a'符号常量声明方式变量4个基本要素:名字、类型、值、使用范围程序运行中,变量的值可以改变,数据数据类型决定了系统为该变量分配的内存单元大小整数类型变量和浮点数型变量可以进行而浮点数型变运算符: 对数据进行加工和处理称为运算,表示各种运算的符号称单目只对一个操作数运算,出现在操作数的左边或者右边双目对两个操作数运算运算符多目1.算术运算符双目运算符+ a+b- a-b* a*b/ a/b% a%b求a与b相除的余数单目运算符++ a++ 或 ++a-- a-- 或 --a- -a a的绝对值不变,符号取反。
关系运算符> a>b>= a>=b< a<b<= a<=b== a==b!= a!=b6种关系运算符都可用于整数、浮点数及字符型操作数== 和!=还可用于布尔类型及字符串类型操作数字符串型操作数比较依据是其Uni'a'--'z'的26个小写字母中,后‘A’--‘Z'的26个大写字母中,后一个字母比前一个字母的0'--'9' 的10个数字中,后面一所有小写字母的Unicode值大于所所有大写字母的Unicode值大于所有数字字符的Unicode值逻辑运算符6个& 与 |或 !非 ^异或一真为真其余为假短路运算符只在必要时计算第二个操作数。
1.什么是数据
生活中时时刻刻都在跟数据打交道,比如体重数据、血压数据、股价数据等。
在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。
2.数据的分类
计算机中存储的数据可以分为两种:静态数据和动态数据。
1>静态数据
●概念:静态数据是指一些永久性的数据,一般存储在硬盘中。
硬盘的存储空间一般都比较
大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。
●存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没
坏,这些数据永远都在。
●哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。
2>动态数据(临时数据)
●概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。
内存的
存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。
●存储的时长:计算机关闭之后,这些临时数据就会被清除。
●哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运
行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。
当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。
你可能会问:既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?有个主要原因是内存的访问速度比硬盘快N倍。
程序员最关心的是什么数据呢?
3>静态数据和动态数据的转换
静态->动态
动态->静态
3.数据的大小
1)不管是静态还是动态数据,都是0和1组成的。
0和1如何组成这么多的数据?
2)数据都有大小,静态数据就会占用硬盘的空间,动态数据就占用内存的空间
3)数据越大,包含的0和1就越多,比特位和字节
4) 1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB,1 TB = 1024 GB
4.app中的各种数据
5.C语言中的数据类型
由于app中的数据种类繁多,为了方便操作数据,C语言数据进行了分类
1.什么是常量
常量,表示一些固定的数据
2.常量的分类
1>整型常量(int)
包括了所有的整数,比如6、27、109、256、-10、0、-289等
2>浮点型常量(float\double)
浮点型常量分为double和float两种数据类型
◆double:双精度浮点型,其实就是小数。
比如5.43、-2.3、0.0等(注意,0.0也算是个小
数)
◆float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数
比较少。
为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。
需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。
3>字符常量(char)
◆将一个数字(0~9)、英文字母(a~z、A~Z)或者其他符号(+、-、!、?等)用单引号括起
来,这样构成的就是字符常量。
比如'6'、'a'、'F'、'+'、'$'等。
注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'
4>字符串常量
◆将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。
比如"6"、"男"、
"哇哈哈"、"abcd"、"my_car4",其实printf("Hello World");语句中的"Hello World"就是字符串常量。
那究竟6、'6'、"6"在用法上有什么区别呢?这个先不作讨论,以后会介绍。
3.习题
下面的都是什么类型的常量?
10.6 19.0f 0.0 0 ‘A’“男”“mj”294‘+’
1.什么是变量
当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
比如游戏积分。
2.定义变量
1>目的
◆任何变量在使用之前,必须先进行定义。
◆定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。
◆如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
2>格式
变量类型变量名;
比如int num;
●变量名属于标识符
●变量类型
◆不同类型的变量占用不同大小的存储空间。
内存极其有限,分配适当的存储空间
◆约束变量所存放的数据类型(方便运算)
3>实例
int main()
{
int i;
char c;
int a, b;
return 0;
}
3.变量的使用
1>赋值
●往变量里面存点东西,就是赋值。
赋值语句后带个分号;
i = 10;
注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,作用是将右边的常量10赋值给左边的变量i
●第一次赋值,可以称为“初始化”
●初始化的两种形式
◆先定义,后初始化:int a; a = 10;
◆定义的同时进行初始化:int a = 10;
2>修改
●可以修改变量的值,多次赋值。
每次赋值都会覆盖原来的值
i = 10;
i = 20;
变量i最后的值是20
●使用printf输出一个\多个变量的值
int a = 10, c = 11;
printf("a=%d, c=%d", a, c);
●double\float\char的输出,格式符的一些小技巧
double height = 1.55;
char blood = 'A';
printf("height=%.2f, 血型是%c", height, blood);
●简单的加减操作
int a = 10 + 20;
●没有初始化时不要拿来使用(下面的写法是不建议的)
int score;
printf("score=%d", score);
3>变量之间值的传递
●可以将一个变量的值赋值给另一个变量
int a = 10;
int b = a;
●连续赋值
a =
b = 10;
4.常见错误
1>变量名相同int a = 10;int a = 12;
2>变量的作用域不对
◆变量的创建和释放过程
◆代码块作用域{int a = 10;}
5.习题
1>交换整型变量a、b的值。
比如a=10、b=11;交换之后a的值是11,b的值是10。
用两
种方式实现:
◆使用第三方变量
int temp;
temp = a;
a = b;
b = temp;
◆不使用第三方变量
a =
b - a;
b = b - a;
a =
b + a;
2> 观察下图的游戏界面,思考需要定义多少个变量?。