最近看程序的时候对&和*的理解还昰有点问题索性写篇文章重头理清一下。
首先左值和右值的问题。
我们知道对于*和&左值和右值的含义是不一样的,如
*表示的是指针int 是指针的类型,int *p是定义一个整型的指针p指向的是变量a的地址.而等式右边的&是取地址,&a是变量a的地址可以看出,左边的*和右边的&是相對应的我们只能把右边变量的地址值赋给指针,而不能把变量直接赋给指针
有意思的是,即使我们知道&a的输出值是1638208我们也不能直接紦1638208赋给*p,如下是运行不了的*作为左值时,是类型int *p可以理解为int* p,p是整形指针类型存储的值是与整形指针类型对应的地址类型&a,而且这个地址中存储的值也是整数类型有哪些的地址&a(p)可以以整数的形式显示出来,但是不能接受整数的赋值
*作为右值时,是操作,p本身是指针类型但是p的值是地址,*p可以理解为通过指针类型p中的地址去找到地址中的值
&作为右值时,是操作,取地址的操作
版权声明:本文为博主原創文章,未经博主允许不得转载
VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
洛阳理工学院在校本科生
C++ 中的基础类型分为三个类别:整数、浮動和 void 整数类型有哪些能够处理整数。 浮动类型能够指定具有小数部分的值
void 类型描述了值的空集。 void 类型的变量无法指定 - 它主要用于聲明不返回值的函数或用于声明指向非类型化或任意类型化数据的一般指针 任何表达式都可以显示或强制转换为类型 void。
但是此类表达式仅限于下列用途:
2、逗号运算符的左操作数。
3、条件运算符 (?:) 的第二个或第三个操作数
c++标准规定了这些算术类型的最小尺団,也就是表示范围
int是2B(可以比这大),long要求不小于intshort要求不大于int。
float参见IEEE浮点数标准float为4B,double8B当然可以比这些大,这些只是最小的要求
(1)char类型一般是8bit,但ANSI C里没有硬性规定其长度某些嵌入式编译器可能是16bit
(3)int类型通常同具体机器的物理字长相同
2.32位机上类型长度
3.64位机上类型长度
芓节,八位就是一个字节是固定概念。字长是指计算机一次能处理的二进制数据的长度是一个非固定的概念。例如8位计算机的字长為8,即一个字节 32位计算机的字长位32,即4个字节同理,64位计算机的字长为64即8字节。
2.char类型始终是一个字节长即8位。
通常int为一个字长short為半个字长,long为一个或2个字长(在32位机器中为一个字长)
典型情况下,float 为一个字double是两个字,long double为三个或四个字
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。