C++ 基本语法之变量(指针)与数据类型(占用字节大小)

变量

变量的三要素:类型,符号,数值。

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

 

强制转换:分为显示强制转换与隐式强制转换,我主要解释强制转换。

显示强制类型转换一般用运算符来实现,通常是将高类型转换为低类型,这是可能会出现精度损失,且是非保值转换,

但强制转换是暂时的,不被强制转换时会回到原来的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值