编程语言学习(二) 三种编程语言的数据类型、变量常量定义
2018-02-03 23:44
393 查看
编程语言学习(二) 三种语言的基本数据类型、变量常量定义
(一)基本数据类型
一、C语言数据类型
只有三种:
1.整数类型int,可以加上unsigned/short/long/long long修饰,所占内存依short≤int≤long≤long
long递增,通常是2,2/4,4/8,8字节
2.浮点类型:float、double、long
double,所占内存依次递增,通常4,8,16字节,与编译器与CPU有关,有效数字分别是7,15位
3.字符类型,char,占据一个字节,存储一个ascii码,也可以用来存数字
二、C++语言数据类型
1.在C语言的基础上引入了bool类型,取值true/false,占据一个字节,类型总量达到四种。
2.针对字符串的问题,C++继承了C语言用字符数组存储字符串的方法,也可以用String类的对象存储字符串常量
三、Java语言数据类型
Java为了实现良好的跨平台,就务必保证各个数据类型在不同机器上占据的内存是固定的,所以它的数据类型所占空间与平台无关。
1.整数类型:抛弃了unsigned也抛弃了原先int可写可不写的状态,long/short与int脱钩,再加上新的整数类型byte来代替C\C++当中的char类型,形成以下四种小类型:byte
1个字节,short 2个字节,int 4个字节,long
8个字节。
2.浮点类型:抛弃了long double类型,仅float4个字节,double
8个字节。
3.字符类型:char改为2个字节,扩展到Unicode上所有编码,但是由于Unicode实际编码数已经超过65535个,所以现在用char类型有新机制,基本无碍。
4.布尔类型改名为boolean,取值严格限定在true/false,以往while(1)这种代码在java中不行了
(二)变量与常量定义77
一、C语言变量与常量
1.变量取名:由字母数字下划线组成,开头不能是数字。建议不要用下划线开头,库程序里多数以下划线开头。
2.变量定义与初始化:
语法:数据类型+标识符
C99开始支持随处定义变量,ANSI C时只能放在代码最开头。
可以多个定义,并初始化一个 int a,b,c=55;实际上只有c拿到了值,a和b只是定义下来没有初始化。
3.仅有字符串常量而没有字符串变量,双引号包括,内存最后一个\0
4.文字常量:
(1)整形:前缀0为八进制,0x为16进制,后缀可以是u或l/ll,例如:
int main(){
int m=58965ll; //无论一个或者两个l均编译正确
printf("%d",m);
}
(2)浮点型: 另有科学计数法 e/E前必需有值float型数据后缀f
(3)字符型:单引号内可以直接写八进制数字或者写x带上16进制数字,开头的0都是可以省略的。’\101’ 101为8进制,等于65,该字符为A,’\x41’也是A
char c='\x41';
printf("%c",c);
另有一些控制用的逃逸字符,重要的是\b,\r,\n,\t,\\,\t,\’,\”
仅有字符串常量而没有字符串变量。双引号包括,内存最后一个\0
5. 符号常量
<1>const关键字定义常量 const AMOUNT=100;定义时就得赋值
<2>define宏定义的常量 #define AMOUNT 100
const在C语言中是在C99时才出现的,ANSI
C中不存在const,C和C++都推荐使用const而不采用define宏定义,是因为define宏定义在编译预处理时进行替换,一旦出现bug,并不会在bug中显示出错的常量名,对于更正造成很大不便,在内存分配上按理说define宏定义是不占内存的,继续还得探讨。
PS:符号常量的本质是只读的变量,真正的常量只有字面常量和在枚举类型的成员中出现。
二、C++语言变量与常量
1.变量取名:引入了名字空间的概念,不怕下划线开头了。其他还是照旧。
2.变量定义与初始化:本质是一个标识符结合到一组内存空间。变量定义时也可以进行初始化,若不进行初始化,会根据变量所处的位置(全局/局部)来确定初始值。
初始化方法除了等号,还介绍了三种,
直接赋值或者圆括号:int a=10; int a(0);
列表初始化,要求不能有数据丢失:int a{10};或int a={10};
3. 字符串可以用String类的对象存储,也可以以字符数组的形式存在,
4. 文字常量:与C语言相同,但是字符串当中出现了前缀:
具体有u/U/L/u8四种,我们知道的字符串是由字符组成的,字符类型不仅仅有char类型,我只介绍C++11之前有的wchar_t类型,可以实现Unicode的字符输出,代码见后面。
5.符号常量:推荐使用const,define不要用了。
三、Java语言变量与常量
1.变量取名:字母的范围扩展到了Unicode字符集里的内容,汉字都可以了,其他还是照旧。
2.变量定义与初始化:C/C++中都存在多文件情况下引入extern关键字作为声明,在java中声明和定义是合一的。
3.字符串可以用变量声明的方法构造,也可以用构造对象的方法以参数传入。
4.文字常量:
整数类型:增加了0b开头的二进制文字常量,后缀仅保留了l
浮点类型:float类型的文字常量保留了f,增加了Double.NaN,Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY三个文字常量。
字符类型:支持中文了,‘我’也可以。
5.符号常量:采用了final关键字,而不是const,final与const的区别在未来会仔细谈的。
附录:wchar_t的使用:
(一)基本数据类型
一、C语言数据类型
只有三种:
1.整数类型int,可以加上unsigned/short/long/long long修饰,所占内存依short≤int≤long≤long
long递增,通常是2,2/4,4/8,8字节
2.浮点类型:float、double、long
double,所占内存依次递增,通常4,8,16字节,与编译器与CPU有关,有效数字分别是7,15位
3.字符类型,char,占据一个字节,存储一个ascii码,也可以用来存数字
二、C++语言数据类型
1.在C语言的基础上引入了bool类型,取值true/false,占据一个字节,类型总量达到四种。
2.针对字符串的问题,C++继承了C语言用字符数组存储字符串的方法,也可以用String类的对象存储字符串常量
三、Java语言数据类型
Java为了实现良好的跨平台,就务必保证各个数据类型在不同机器上占据的内存是固定的,所以它的数据类型所占空间与平台无关。
1.整数类型:抛弃了unsigned也抛弃了原先int可写可不写的状态,long/short与int脱钩,再加上新的整数类型byte来代替C\C++当中的char类型,形成以下四种小类型:byte
1个字节,short 2个字节,int 4个字节,long
8个字节。
2.浮点类型:抛弃了long double类型,仅float4个字节,double
8个字节。
3.字符类型:char改为2个字节,扩展到Unicode上所有编码,但是由于Unicode实际编码数已经超过65535个,所以现在用char类型有新机制,基本无碍。
4.布尔类型改名为boolean,取值严格限定在true/false,以往while(1)这种代码在java中不行了
(二)变量与常量定义77
一、C语言变量与常量
1.变量取名:由字母数字下划线组成,开头不能是数字。建议不要用下划线开头,库程序里多数以下划线开头。
2.变量定义与初始化:
语法:数据类型+标识符
C99开始支持随处定义变量,ANSI C时只能放在代码最开头。
可以多个定义,并初始化一个 int a,b,c=55;实际上只有c拿到了值,a和b只是定义下来没有初始化。
3.仅有字符串常量而没有字符串变量,双引号包括,内存最后一个\0
4.文字常量:
(1)整形:前缀0为八进制,0x为16进制,后缀可以是u或l/ll,例如:
int main(){
int m=58965ll; //无论一个或者两个l均编译正确
printf("%d",m);
}
(2)浮点型: 另有科学计数法 e/E前必需有值float型数据后缀f
(3)字符型:单引号内可以直接写八进制数字或者写x带上16进制数字,开头的0都是可以省略的。’\101’ 101为8进制,等于65,该字符为A,’\x41’也是A
char c='\x41';
printf("%c",c);
另有一些控制用的逃逸字符,重要的是\b,\r,\n,\t,\\,\t,\’,\”
仅有字符串常量而没有字符串变量。双引号包括,内存最后一个\0
5. 符号常量
<1>const关键字定义常量 const AMOUNT=100;定义时就得赋值
<2>define宏定义的常量 #define AMOUNT 100
const在C语言中是在C99时才出现的,ANSI
C中不存在const,C和C++都推荐使用const而不采用define宏定义,是因为define宏定义在编译预处理时进行替换,一旦出现bug,并不会在bug中显示出错的常量名,对于更正造成很大不便,在内存分配上按理说define宏定义是不占内存的,继续还得探讨。
PS:符号常量的本质是只读的变量,真正的常量只有字面常量和在枚举类型的成员中出现。
二、C++语言变量与常量
1.变量取名:引入了名字空间的概念,不怕下划线开头了。其他还是照旧。
2.变量定义与初始化:本质是一个标识符结合到一组内存空间。变量定义时也可以进行初始化,若不进行初始化,会根据变量所处的位置(全局/局部)来确定初始值。
初始化方法除了等号,还介绍了三种,
直接赋值或者圆括号:int a=10; int a(0);
列表初始化,要求不能有数据丢失:int a{10};或int a={10};
3. 字符串可以用String类的对象存储,也可以以字符数组的形式存在,
4. 文字常量:与C语言相同,但是字符串当中出现了前缀:
具体有u/U/L/u8四种,我们知道的字符串是由字符组成的,字符类型不仅仅有char类型,我只介绍C++11之前有的wchar_t类型,可以实现Unicode的字符输出,代码见后面。
5.符号常量:推荐使用const,define不要用了。
三、Java语言变量与常量
1.变量取名:字母的范围扩展到了Unicode字符集里的内容,汉字都可以了,其他还是照旧。
2.变量定义与初始化:C/C++中都存在多文件情况下引入extern关键字作为声明,在java中声明和定义是合一的。
3.字符串可以用变量声明的方法构造,也可以用构造对象的方法以参数传入。
4.文字常量:
整数类型:增加了0b开头的二进制文字常量,后缀仅保留了l
浮点类型:float类型的文字常量保留了f,增加了Double.NaN,Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY三个文字常量。
字符类型:支持中文了,‘我’也可以。
5.符号常量:采用了final关键字,而不是const,final与const的区别在未来会仔细谈的。
附录:wchar_t的使用:
int main() { wchar_t c = L'你'; wcout.imbue(locale("chs")); wcout << c << endl; system("pause"); return 0; }
相关文章推荐
- c#学习笔记一:变量、常量、预定义数据类型
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- C语言学习笔记(二)--数据类型、常量和变量简介
- Kotlin学习笔记2 : 变量常量与基本数据类型
- PHP学习之[第03讲]PHP5.4 语法、常量、变量、数据类型详解
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- PL/SQL学习笔记-常量变量及数据类型初步
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- 黑马程序员C语言学习-关键字、标示符、注释、数据类型、常量变量
- golang语法学习(一):变量,常量以及数据类型
- Swift学习(四)常量&变量&基础数据类型
- NO2.Java学习笔记【关键字、类名、标识符、注释、变量与常量、数据类型、进制、运算符】
- java学习之路(4)-常量 、变量与数据类型
- C语言基础学习基本数据类型-变量和常量
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- swift学习第一天---常量变量基础数据类型
- Swift 学习笔记第一天-变量常量,及数据类型
- Oracle之PL/SQL编程_数据类型与定义变量和常量
- 第六节 java学习 数据类型 变量 常量