C++基础之数据类型表达式与基本输入输出
VS2013默认是32位(具体的需要根据开发环境操作系统而定)
char型不管什么系统和开发环境永远占一个字节。
bool型占1个字节
32位系统中,short占 2 字节,
int 、float、long 都占 4 字节,
只有double 占8 字节
2、
3、
八进制:由数字0开头
十六进制:由0x开头
4、
默认的(实型常量)浮点字面值常量为double类型,在数值的后面加f表示单精度。
指数形式:3.23E5=3.23*10^5
5、
字符串常量实际是一个字符数组,组成数组的字符除了显示给出的外,还包括字符结尾处标识符结束的符号’\0’
‘a’占一个字节,”a”占两个字节。
6、
我们以C++代码来判别两个浮点数是否相等。由于浮点数在存储中无法精确表示,所以 fp1==fp2 无法准确的判断float型变量fp1与fp2是否相等。应该使用 (fp1-fp2)<0.0000001 来进行判断。
7、
如果不特殊控制,输出默认全部转换为十进制。
8、7.8%2 错误
9、
\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。
10、
int a=0;
int i=1;
a=(i++)+(++i); //2+2
结果:i=3,a=4
第一步:i++先取出i的值1
第二步:计算++i,此时i的值为2
第三步:此时a的值为2+2=4
第四步:计算完a的值后,再去完成前式i++的自加操作,前式的值也为2+1=3.
因此a的值为4,i的值为3.
11、
score=86;
score的值为86,并且score=86,这个表达式的值也为86.
12、
什么是结合性?:即指同一优先级别的运算符,是应该从左向右还是从右向左进行运算
算术运算:
a+=a-=a*a;//假设初始a=8
运算过程:
一:(右结合a-=a*a)a=a-a*a=8-64=-56,所以a的值为-56.
二:a-=a*a整个式子的值也为-56.
三:(a+=a)a+=a <=> a=a+a=-112
自加自减运算符的优先级高于算术运算符(--、++ 高于 -+*/)
!&& || 优先级从左向右依次降低。
13、
逗号表达式:从左至右依次计算表达式的值,表达式整体值是最右边表达式的值
14、
自动类型转换(从低精度到高精度转换)
15、
++p->n+3 <==> (++(p->n))+3
p->n+++3 <==> ((p->n)++)+3
16、
在宏定义时,宏名和带参数的括号之间不能有空格。#define S(r) 4*r 对
#define S (r) 4*r 错