基本数据类型、表达式及程序流程控制(C++)

[程序设计语言用c++语言编程陈家骏]
一、数据类型
1.各种无符号整数类型所占的内存大小与相应的有符号整数类型相同。对应有符号整数,通常是最高位表示符号,对无符号整数,没有符号位表示。对应同样大小存储空间,无符号整数类型所表示的最大整数比有符号表示的最大整数大大约一倍。

2.在计算机内部,实数采用科学计数法(浮点形式)表示,即把实数表示成a*2^b,在内存空间中存储的是尾数和指数两部分,均采用二进制表示,指数的基数是2,有些十进制小数是不能精确表示成二进制小数的,如0.1

3.计算机中,字符是用其编码来表示和存储的,c++允许把char类型的数据(字符的编码)当作整数类型值进行算术运算。逻辑类型值也可以参加算术运算。

4.整数类型:int, short int(short), long int(long),前三个默认为带符号型,还有无符号型:unsigned int(unsigned), unsigned short int(unsigned short), unsigned long int(unsigned long)
  实数类型:float, double, long double,
  字符类型:char, wchar_t
  逻辑类型:bool
  空置型:void, void *
  整型:各种int型,char类型,bool类型
  算术类型:整形和实数类型
各类型占据内存空间大小可用sizeof计算,各类型所表示的数据范围可在c++标准库头文件中获得,整数:climits(limits.h),实数:cfloat(float.h)

二、数据表现形式
1.八进制形式:以数字0开头,0-7组成,如073
  十六进制形式:以0x或0X开头,0-9和A-F(a-f)组成,如0x3B
字符常量可用单引号括起来的一个字符表示,也可用一对单引号括起来的一个字符编码表示,这时必须用转义序列(/开头)来编码,编码可采用八进制和十六进制表示
八进制:'/ddd',ddd为三位八进制数
十六进制:'/xhh',  hh为两位十六进制数
  A有三种表示方法:'A', '/101', '/x41'

2.根据对类型定义的不同要求,常把程序语言分为:
2.1静态类型语言:定义的每个变量必须指定一个类型,变量的类型在编译时刻能够确定,类型检查在编译时刻完成,一般采用编译执行,效率较高
2.2动态类型语言:不要求在程序中指定变量类型,类型在程序运行时根据实际赋给它的值来确定,类型检查需要到程序运行时进行,一般采用解释执行,在运行时刻需要执行额外的代码来进行变量类型的检查和内存空间的分配等操作,效率不高

3.根据对类型检查的不同要求,常把程序语言分为:
3.1强类型语言:对变量的操作进行严格的类型检查
3.2弱类型语言:对类型检查不完全,程序的错误只有到程序得出了错误的结果或异常终止时才发现

4.c++是静态、强类型语言

三、操作符
1.当把有符号类型数转换为无符号类型数时,将不改变有符号数的符号位,而是把该符号位作为无符号数的一位有效位数字来解释,这样,把负数转换为无符号数时就会成为正数。

2.应避免两个浮点数进行==和!=比较运算,可采用判断两者的差的绝对值是否小于某个很小的数来实现。a==b==c:a==b结果与c再比较

3.左移操作符<<:0x3F61<<2,表示为把第一个操作数按二进制位一次左移由第二个操作数指定的位数,高位舍弃,低位补0
右移操作符>>:unsigned char ch1=0xA6;//10100110
       singned char ch2=0xA6;
ch1>>2:结果为00101001:右移时,低位舍弃,对无符号数或有符号非负数,高位补0
ch2>>2:结果为11101001:对有符号数的负数,高位与原来的最高位相同

四、表达式
1.c++根据表达式是否能作为赋值操作的左边操作数,把表达式分为
左值表达式:能出现在赋值操作左边的表达式,当然,左值表达式也可出现在赋值操作符的右边,表达式结果有明确的内存地址,该地址内容可以被修改,++x是左值表达式,结果存于x,x++不是,结果存于临时存储空间中,没有明确内存地址,无法被显示访问
右值表达式:不能出现在赋值操作左边的表达式

右结合的操作符:++(前置),--(前置),!,~,-,+,&,*,sizeof,new,delete,(type),?:,=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=

五、switch语句
switch(<整形表达式>)
{case <整形常量表达式1>:<语句序列1>
 case <整形常量表达式2>:<语句序列2>
 ...
 case <整形常量表达式n>:<语句序列n>
 [default:<语句序列n+1>]
}
<整形表达式>:结果为整形的表达式
<整形常量表达式i>:其中操作数只能是常量,并且各值不同

六、break、continue、goto语句
break语句:a.介绍switch语句的某个分支执行;b.退出包含它的最内层循环语句。break语句可用某些额外变量代替,并在循环条件中进行逻辑与进行控制,只能退出一层循环
continu语句:只能用在循环语句的循环体中,立即结束当前循环,准备进入下一次循环。
goto语句格式:goto <语句标号>;<语句标号>:<语句>;使用goto时,不从函数外转入函数内,也不能从函数内转入函数外,允许从内层复合语句转入外层复合语句或外层转入内层复合语句,不能跨过带有初始化的变量定义。可以退出多重循环。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值