Mohican_9/21 基本数据类型
类型:
强类型:先定义,后使用。一旦定义,不可改变
注意:
A.强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。
B.强制转换并没有改变变量类型。强类型语言有个“强制转换”,只是改变是变量的值的类型,而没有改变变量的类型。变量的类型是不允许改变的
A.强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。
B.强制转换并没有改变变量类型。强类型语言有个“强制转换”,只是改变是变量的值的类型,而没有改变变量的类型。变量的类型是不允许改变的
弱类型:一个变量可以赋不同数据类型的值。语言的运行时会隐式做数据类型转换。
转载:
下面是些例子
无类型: 汇编
弱类型、静态类型 : C/C++
弱类型、动态类型检查: Perl/PHP
强类型、静态类型检查 :Java/C#
强类型、动态类型检查 :Python, Scheme
静态显式类型 :Java/C
静态隐式类型 :Ocaml, Haskell
(链接:https://www.zhihu.com/question/19918532/answer/21647195
来源:知乎)
来源:知乎)
上图
Sizeof :
1.定义
是一个操作符,目的是返回一个对象或者类型所占的内存字节数。
2.语法
有三种语法形式,如下:
1) sizeof( object ); // sizeof( 对象 );
2) sizeof( type_name ); // sizeof( 类型 );
3) sizeof object; // sizeof 对象;
3.sizeof的常量性
sizeof的计算发生在编译时刻,所以它可以被当作常量表达式使用.
有三种语法形式,如下:
1) sizeof( object ); // sizeof( 对象 );
2) sizeof( type_name ); // sizeof( 类型 );
3) sizeof object; // sizeof 对象;
3.sizeof的常量性
sizeof的计算发生在编译时刻,所以它可以被当作常量表达式使用.
4. 基本数据类型的sizeof
这里的基本数据类型指short、int、long、float、double这样的简单内置数据类型,
由于它们都是和系统相关的,所以在不同的系统下取值可能不同,一般的,在32位编译环境中,sizeof(int)的取值为4。
5.数组的sizeof
数组的sizeof值等于数组所占用的内存字节数,如:
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符
sizeof( a2 ); // 结果为3*4=12(依赖于int)
6.指针型
存放地址的,等于计算机内部地址总线的宽度。所以在32位计算机中 ,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8
这里的基本数据类型指short、int、long、float、double这样的简单内置数据类型,
由于它们都是和系统相关的,所以在不同的系统下取值可能不同,一般的,在32位编译环境中,sizeof(int)的取值为4。
5.数组的sizeof
数组的sizeof值等于数组所占用的内存字节数,如:
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符
sizeof( a2 ); // 结果为3*4=12(依赖于int)
6.指针型
存放地址的,等于计算机内部地址总线的宽度。所以在32位计算机中 ,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8
大小端:
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。
字节排序按分为大端和小端,概念如下
大端(big endian) :低地址存放高有效字节
小端(little endian) :低字节存放地有效字节
字节排序按分为大端和小端,概念如下
大端(big endian) :低地址存放高有效字节
小端(little endian) :低字节存放地有效字节