C++中的变量类型都有哪些,各占多少字节?

2024-11-29 23:27:53
推荐回答(5个)
回答1:

第一种 字符型(char) 占1BYTE
第二种 整型(int) short int 占 2BYTE int 占4BYTE
第三种 浮点型 float 占4BYTE double 占8BYTE long double 占16BYTE

回答2:

主要记得三种
一,整型
int 2Byte
signed int 2Byte
unsigned int 4Byte
long int 4Byte
二.实型
float 4Byte
double 8Byte
long double 16Byte
三.字符型
char 1Byte

回答3:

变量的三要素:类型,符号,数值。
int num = 3;
int* a = num; (错误,因为变量a的类型是int*,而num的类型是int)。
int* a = #(正确,变量类型一样)。
*a = #(错误,解释跟上面那种错误一样的,变量类型不一致)。
指针定义时的*跟(*a)中的*意义是不一样的,定义中的*只是为了跟不带*类型定义区分开,
比如 int*与int,而(*a)中的*就是一个取内容的运算符。指针类型指的就是指针所指向的变量的类型,
int*定义的是一个地址变量,int定义的是一个整数变量。

回答4:

这道题我没接触过,你打不明确

回答5:

变量的三要素:类型,符号,数值。
int num = 3;
int* a = num; (错误,因为变量a的类型是int*,而num的类型是int)。
int* a = #(正确,变量类型一样)。
*a = #(错误,解释跟上面那种错误一样的,变量类型不一致)。
指针定义时的*跟(*a)中的*意义是不一样的,定义中的*只是为了跟不带*类型定义区分开,
比如 int*与int,而(*a)中的*就是一个取内容的运算符。指针类型指的就是指针所指向的变量的类型,
int*定义的是一个地址变量,int定义的是一个整数变量。

指针的运算
赋值运算

int* a = #
char* a = "cbh ibican";
char* a;

a = "cbh ibican";

自增自减运算

a++,a--;

指针相减

int* a;
int num[10],temp;
a = num +3;
temp = a - num;

指针,地址运算

int *ip1,*ip2;
ip1 = ip2 + 1;
ip1 - ip2;(指针运算) 1
(int)ip1 - (int)ip2;(地址运算) 4

还有两类特别的指针,数组指针与函数指针,需明确的是这两类是指针,不是数组或函数
int (*a)[10]; (指针a指向一维数组,元素个数是10个,类型是int)
int (*a)(); (指针a指向函数,且此函数的参数为空的)
数据类型及占用的字节
bool 1
char 1
short 2
short int 2
signed short 2
unsigned short 2
int 4
long int 4
signed int 4
unsigned int(unsigned) 4
long 4
unsigned long 4
float 4
double 8
void* 4 (void* 可表示为任意的指针)(char*,int*,float*,double*)
enum 4

32位操作系统变量所占的字节
char a[]="hello";
char b[100];
char *p=a;
类型 字节长度
sizeof(a) 6
sizeof(b) 100
sizeof(p) 4

数据类型的转换
自动转换:这种转换是从低类型转换到高类型,不会有精度损失。也称隐式的保值转换。
int --> unsigned --> long --> double --> long double
^ ^
short float

强制转换:分为显示强制转换与隐式强制转换,我主要解释强制转换。
显示强制类型转换一般用运算符来实现,通常是将高类型转换为低类型,这是可能会出现精度损失,且是非保值转换,但强制转换是暂时的,不被强制转换时会回到原来的类型。