02.变量和基本数据类型
2016-08-12 15:48
295 查看
先看一个简单的例子:
关键字:系统使用,比如int。
变量名保存了地址,数据类型保存了长度和转换关系。
从内存来看,内存可以粗略地理解为一个个小衣柜,你向系统申请个柜子,然后给你个号码,你下次按着号码来拿衣服。变量名就是这个号码,所以需要先定义后使用。
赋值操作符:=,把右边的值赋给左边的变量。 int a; a = 3;
后面想用数字3的时候可以直接使用变量名。
变量里面的数在赋值前是随机的(永远有数)。最好初始化,即定义的时候赋值。
举个例子,int这个类型就告诉编译器,从变量名那个地址开始算,往后32个格子(位bit,1字节=8位,即int数据占4个字节)是这个变量的。
字节(byte,B)是计算机管理内存的基本单位,变量是若干个相邻的字节构成,变量的地址是地址最小的那个字节的地址。
数值数据类型:整型,浮点型
字符数据类型:字符型,标识符(identifier),关键字(keyword),保留字
标识符(变量名,函数名,数组名,文件名,类型名)由字母、数字、下划线组成,数字不能开头。区分大小写。
空类型:void,不确定的数据类型,通常作为类型占位符。
短整型(short,2B,-32768 - +32767)
整型(int,4B,-21.47亿 - +21.47亿)
长整型(long,4B,在32位操作系统上表数范围和int一样),后面加L或l。
//sizeof()运算符可以求一个变量,类型,常量等所占的存储空间。会执行括号中的计算,但是不会有结果。(也可以理解为没有执行)
有符型,为了区分正负,将第一位作为符号位,0表示正,1表示负。无符号类型(unsigned)表数范围的绝对值扩大两倍,只能表示非负整数,比如unsigned short表数范围为0-65535。
浮点类型:
单精度浮点型(float,4B,(-10^38 - -10^-38)和(10^-38 - 10^38))
双精度浮点型(double,8B,(-10^308 - -10^-308)和(10^-308 - 10^308))
存储:float最高位为符号位,接下来8位为指数位,最后23位为尾数位。后面加f或F。
科学计数法表示:E前面必须有数字,指数必须为整数。
浮点数通常只是实际值的近似值。
标识符,关键字,空白符(空格符、制表符、换行符)都属于字符型。
用ASCII编码方案编码后储存,0-255个(有的系统会扩展)。
标识符(Identifier)(变量名,函数名,数组名,文件名,类型名)由字母、数字、下划线组成,数字不能开头。区分大小写。
关键字(Key Word):具有特俗意义的标识符,不能用于它用。
保留字(Reserved Word):系统暂时不使用,未来可能会使用的标识符,比如java中的goto。
构造类型:数组类型、结构体类型、共用体(结合体)类型。由基本类型构造而成。
整数常量:十进制,八进制,十六进制。(前缀,0,0x)(后缀,L,U)
实型常量 :十进制小数,在后面加F(f)。
科学计数法表示:E前面必须有数字,指数必须为整数(double型)
1.5E+2.5、E6都是错的。
字符型常量分为普通字符常量(‘a’,‘3’)和转义字符常量(‘\n’)。在c/c++中,反斜线(/)为转义符,后面的内容有特殊含义。
字符串常量:\0结尾。“”括起来。
字符串常量:“”字符串尾自动加一个“\0”作为结束标志,没有内容的称为空串。
‘ab’既不是字符常量,也不是字符串常量。
符号常量:利用标识符定义一个常量,即宏替换。
复数类型:
复数类型:float_Complex、double_Complex和long double _Complex
虚数类型是float_Imaginary、double _Imaginary和long double _Imaginary。
如果包含complex.h头文件,便可用complex代替_Complex,用imaginary代替_Imaginary,还可以用I代替-1的平方根。
例子代码:
#include <stdio.h> //预处理命令 int main(void) { int num; //声明变量。int是关键字,num是标识符 num = 1; //给变量赋值 printf("一个简单的程序。\n"); //调用printf系统函数,\n为转义字符,表示换行。 printf("Num的值是:%d\n",num); return 0; //主函数返回,操作权给操作系统。 }
变量(Variable)
变量名:标识符(由字母、数字、下划线组成,数字不能开头,区分大小写),先定义后使用。最好初始化,即定义的时候赋值。关键字:系统使用,比如int。
变量名保存了地址,数据类型保存了长度和转换关系。
变量名
类型确定了则需要给一个名字,最好是能够一看就知道是什么意思的,比如书本数量,就叫BookNumber,变量必须要是合法的标识符(由字母、数字、下划线组成,数字不能开头,区分大小写),不能与关键字(系统要用的名字)相同。从内存来看,内存可以粗略地理解为一个个小衣柜,你向系统申请个柜子,然后给你个号码,你下次按着号码来拿衣服。变量名就是这个号码,所以需要先定义后使用。
赋值操作符:=,把右边的值赋给左边的变量。 int a; a = 3;
后面想用数字3的时候可以直接使用变量名。
变量里面的数在赋值前是随机的(永远有数)。最好初始化,即定义的时候赋值。
基本数据类型
计算机存储的是二进制,则全是0或者1,计算机需要知道变量放在哪里,放的是什么。变量名保存了地址,数据类型保存了长度和转换关系。举个例子,int这个类型就告诉编译器,从变量名那个地址开始算,往后32个格子(位bit,1字节=8位,即int数据占4个字节)是这个变量的。
字节(byte,B)是计算机管理内存的基本单位,变量是若干个相邻的字节构成,变量的地址是地址最小的那个字节的地址。
数值数据类型:整型,浮点型
字符数据类型:字符型,标识符(identifier),关键字(keyword),保留字
标识符(变量名,函数名,数组名,文件名,类型名)由字母、数字、下划线组成,数字不能开头。区分大小写。
空类型:void,不确定的数据类型,通常作为类型占位符。
数值数据类型
整数类型:短整型(short,2B,-32768 - +32767)
整型(int,4B,-21.47亿 - +21.47亿)
长整型(long,4B,在32位操作系统上表数范围和int一样),后面加L或l。
//sizeof()运算符可以求一个变量,类型,常量等所占的存储空间。会执行括号中的计算,但是不会有结果。(也可以理解为没有执行)
有符型,为了区分正负,将第一位作为符号位,0表示正,1表示负。无符号类型(unsigned)表数范围的绝对值扩大两倍,只能表示非负整数,比如unsigned short表数范围为0-65535。
浮点类型:
单精度浮点型(float,4B,(-10^38 - -10^-38)和(10^-38 - 10^38))
双精度浮点型(double,8B,(-10^308 - -10^-308)和(10^-308 - 10^308))
存储:float最高位为符号位,接下来8位为指数位,最后23位为尾数位。后面加f或F。
科学计数法表示:E前面必须有数字,指数必须为整数。
浮点数通常只是实际值的近似值。
字符数据类型
字符型(char,1B,-128 - +127),无符号字符型(unsigned char,1B,0 - 255)标识符,关键字,空白符(空格符、制表符、换行符)都属于字符型。
用ASCII编码方案编码后储存,0-255个(有的系统会扩展)。
标识符(Identifier)(变量名,函数名,数组名,文件名,类型名)由字母、数字、下划线组成,数字不能开头。区分大小写。
关键字(Key Word):具有特俗意义的标识符,不能用于它用。
保留字(Reserved Word):系统暂时不使用,未来可能会使用的标识符,比如java中的goto。
特殊数据类型
空类型(void,不确定的数据类型,通常作为类型占位符)原子类型和构造类型
原子类型:基本类型、指针类型、空类型。不可再分割。构造类型:数组类型、结构体类型、共用体(结合体)类型。由基本类型构造而成。
char(unsigned char) 1个字节 short(unsigned short) 2个字节 int(unsigned int) 4个字节 long(unsigned long) 4个字节 float 4个字节 double 8个字节
常量
常量(Constant):值不能改变的量,不能对常量赋值整数常量:十进制,八进制,十六进制。(前缀,0,0x)(后缀,L,U)
实型常量 :十进制小数,在后面加F(f)。
科学计数法表示:E前面必须有数字,指数必须为整数(double型)
1.5E+2.5、E6都是错的。
字符型常量分为普通字符常量(‘a’,‘3’)和转义字符常量(‘\n’)。在c/c++中,反斜线(/)为转义符,后面的内容有特殊含义。
字符串常量:\0结尾。“”括起来。
常用转义字符: \n 回车换行 \t (transverse) 相当于tab \v (vertical) 竖向跳格 \r 左移符 左移光标,输出覆盖 \f 换页符 \b 退格符 \ddd 1-3位八进制所代表的的字符 (ascii码) \xhh 1-2位十六进制所代表的的字符
字符串常量:“”字符串尾自动加一个“\0”作为结束标志,没有内容的称为空串。
‘ab’既不是字符常量,也不是字符串常量。
符号常量:利用标识符定义一个常量,即宏替换。
复数类型:
复数类型:float_Complex、double_Complex和long double _Complex
虚数类型是float_Imaginary、double _Imaginary和long double _Imaginary。
如果包含complex.h头文件,便可用complex代替_Complex,用imaginary代替_Imaginary,还可以用I代替-1的平方根。
//char类型小结: char a; //声明一个char类型变量。 a = 'T'; //赋值 a = T; //错误,T是一个变量。 a = "T"; //错误,T是一个字符串。 a = 65; //对于ASCII正确,但是不建议,也许什么时候就错了。
例子代码:
#include <stdio.h> int main() { char c1 = 65; short int i1 = 10; int i2 = 10; long int i3 = 10; double d1 = 10.11; float f1 = 10.12; printf("char:%d Bytes\nshort int:%d Bytes\nint:%d Bytes\nlong int:%d Bytes\ndouble:%d Bytes\nsfloat:%d Bytes\n", sizeof(c1),sizeof(i1++),sizeof(i2++),sizeof(i3++),sizeof(d1),sizeof(f1)); //sizeof()运算符可以求一个变量,类型,常量等所占的存储空间。会执行括号中的计算,但是不会有结果。 printf("字符是用ASC码存储的:%c\n", c1); printf("sizeof(i++)后i的值:%d,%d,%d\n",i1,i2,i3); printf("\n****************************************\n\n"); int x = 100; printf("进制显示:100\n"); printf("dec = %d; octal = %o; hex = %x\n", x, x, x); printf("dec = %d; octal = %#o; hex = %#x\n", x, x, x); printf("\n****************************************\n\n"); //溢出 printf("溢出\n"); int i = 2147483647; unsigned int j = 4294967295; printf("%d %d %d\n", i, i+1, i+2); printf("%u %u %u\n", j, j+1, j+2);//溢出后会从最小的开始 printf("\n****************************************\n\n"); //h修饰符可以显示较大整数被截断成 short 类型值 unsigned int un = 3000000000; /* int为32位和short为16位的系统 */ short end = 200; long big = 65537; long long verybig = 12345678908642; printf("un = %u and not %d\n", un, un); printf("end = %hd and %d\n", end, end); printf("big = %ld and not %hd\n", big, big); printf("verybig= %lld and not %ld\n", verybig, verybig); printf("\n****************************************\n\n"); //指数显示 float aboat = 32000.0; double abet = 2.14e9; long double dip = 5.32e-5; printf("%f can be written %e\n", aboat, aboat); // 下一行要求编译器支持C99或其中的相关特性 printf("And it's %a in hexadecimal, powers of 2 notation\n",aboat); printf("%f can be written %e\n", abet, abet); printf("%Lf can be written %Le\n", dip, dip); printf("\n****************************************\n\n"); return 0; }
相关文章推荐
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- [C++ primer 学习笔记][02]变量和基本类型
- Python笔记——基本语法:标识符、数据类型、变量、运算符及表达式/编码风格
- 基本数据类型----常量与变量
- 作为引用数据类型,数组变量与基本数据类型变量的使用有哪些区别?
- C语言之基本数据类型与变量
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- [笔记][Java 4 Android][001~006] Java4android 环境配置、变量、基本数据类型
- Go语言学习笔记(语法篇) - 基本数据类型、变量
- Python基础02 基本数据类型
- C++ Primer 02 变量和基本类型
- Java编程基本数据类型(datatype) 、变量和常量
- Java第一课 Java的一些基本概念,Java的起源、为什么我们要学习Java语言,Java跨平台原理剖析;Java环境变量的配置,初学者常犯的问题,Java语言的基本数据类型和Java的语句。
- 02 数据类型及变量
- 02 C# 第二章 数据类型 - 基本类型
- JAVA第二天变量补码进制转换基本数据类型
- C++ 基本语法之变量(指针)与数据类型(占用字节大小)
- java小练习(使用八种基本数据类型定义八个变量,然后在控制台输出各个变量的值)
- Unix/Linux C++应用开发-C++变量和基本数据类型
- Python基础02 基本数据类型