C++中的变量类型都有哪些,各占多少字节?
5个回答
2013-07-29
展开全部
第一种 字符型(char) 占1BYTE
第二种 整型(int) short int 占 2BYTE int 占4BYTE
第三种 浮点型 float 占4BYTE double 占8BYTE long double 占16BYTE
第二种 整型(int) short int 占 2BYTE int 占4BYTE
第三种 浮点型 float 占4BYTE double 占8BYTE long double 占16BYTE
2013-07-29
展开全部
主要记得三种
一,整型
int 2Byte
signed int 2Byte
unsigned int 4Byte
long int 4Byte
二.实型
float 4Byte
double 8Byte
long double 16Byte
三.字符型
char 1Byte
一,整型
int 2Byte
signed int 2Byte
unsigned int 4Byte
long int 4Byte
二.实型
float 4Byte
double 8Byte
long double 16Byte
三.字符型
char 1Byte
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量的三要素:类型,符号,数值。
int num = 3;
int* a = num; (错误,因为变量a的类型是int*,而num的类型是int)。
int* a = #(正确,变量类型一样)。
*a = #(错误,解释跟上面那种错误一样的,变量类型不一致)。
指针定义时的*跟(*a)中的*意义是不一样的,定义中的*只是为了跟不带*类型定义区分开,
比如 int*与int,而(*a)中的*就是一个取内容的运算符。指针类型指的就是指针所指向的变量的类型,
int*定义的是一个地址变量,int定义的是一个整数变量。
int num = 3;
int* a = num; (错误,因为变量a的类型是int*,而num的类型是int)。
int* a = #(正确,变量类型一样)。
*a = #(错误,解释跟上面那种错误一样的,变量类型不一致)。
指针定义时的*跟(*a)中的*意义是不一样的,定义中的*只是为了跟不带*类型定义区分开,
比如 int*与int,而(*a)中的*就是一个取内容的运算符。指针类型指的就是指针所指向的变量的类型,
int*定义的是一个地址变量,int定义的是一个整数变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这道题我没接触过,你打不明确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-05-14 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
变量的三要素:类型,符号,数值。
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
强制转换:分为显示强制转换与隐式强制转换,我主要解释强制转换。
显示强制类型转换一般用运算符来实现,通常是将高类型转换为低类型,这是可能会出现精度损失,且是非保值转换,但强制转换是暂时的,不被强制转换时会回到原来的类型。
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
强制转换:分为显示强制转换与隐式强制转换,我主要解释强制转换。
显示强制类型转换一般用运算符来实现,通常是将高类型转换为低类型,这是可能会出现精度损失,且是非保值转换,但强制转换是暂时的,不被强制转换时会回到原来的类型。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询