数值计算
数据存储 定义变量 申请存储空间 数据输入 数值计算 数据输出一、变量
定义变量 访问变量 变量=内存单元 定义变量 数据类型 预定义数据类型 写入 输入 cin>>ctemp 赋值 ctemp = 36 初始化 int x=10,y; 读出 自动读取 ftemp =ctemp * 1.8 + 32; 输出 cout<<ftemp; 先定义 或访问关键字
标识符 字母 数字 下划线组成,字母和下划线开头 语句 分号结束 常量 其值不变 数据类型 默认整形/浮点型 32 032 0x32 符号常量 运算符 分隔符三、算数运算
+表达式 运算符、操作数、括号 表达式语句 +运算符 优先级 结合性算术运算符
+ - * / 优先级 1-15强制类型转换
double(3) 自定转换(隐含转换) char--unsigned char--shootr--unsigned short -- int --unsigned -- long -- unsigned long -- float -- double 表达式结果:值+类型 括号 () 括号内的优先 其它算术运算符 取余运算符 % 自增运算符 ++ 后置 变量先用再加 优先级1 结合性从左到右 前置 变量先加再用 优先级2 结合性从右到左 自减运算符 前、后四、位运算
一个二进制位可记录某种对象的开关状态 +位反运算符~ ~ 0101 0101 = 1010 1010+位与运算符 &
有0为0,全1为1 检测是零还是一 +位或运算符 | 全0为0,有1为1 某位置1 +异或运算符 ^ 相同为0,不同为1 某位反置 +左移运算符 << 低位补零 +右移运算符 >> 无符号 高位补零 有符号 最高位补符号位五、赋值运算
+赋值运算符 = 修改变量的数值 +泛化的运算符 = ++ -- +复合赋值运算符 += -= *= /= &= |= ^= <<= >>= 优先级与=一样 +变量初始化 +常变量 const x=5 使用const关键字指定常变量 定义常变量时必须初始化 常变量的值不能改变,例如不能再次被赋值六、数据的输入和输出
+控制台程序+输入/输出流
键盘 cin 显示器 cout +导入外部程序 #include using namespace std;cin>>变量1>>变量2....>>变量n;
输入时用空格或Tab隔开,回车键结束cout<<表达式1<<表达式2....<<表达式n;
endl表示换行 执行该语句时,计算机首先从右到左顺序逐个计算表达式的结果,然后再按从左到右的顺序依次显示各表达式的结果,各显示结果之间没有间隔七、引用与指针
+访问变量内存单位 变量名 引用 指针 +引用: 变量的别名 公用同一内存空间定义引用变量
引用类型&引用变量名 = 被引用变量名; 引用类型是引用变量的数据类型,必须与被引用变量的类型一致: &是引用变量说明符。定义变量语句中,变量名前加& 表示该变量为引用变量; 引用变量名需符合标识符的命名规则 被引用变量名指定被引用的变量,该变量必须是一个已经定义的变量 定义引用变量时必须初始化,即指定其是哪个变量的引用,引用变量只能因哟给一个变量,定义后不呢个再引用其他变量 举例: 定义一个int型变量x及其因哟个变量xaint x;int &xa = x;//称xa是x的一个引用 int x,&xa = x;//可在一条定义语句中完成 int x,y,&xa = x;//一条定义变量语句可既包括普通变量,又包括引用变量
//键盘输入一个数值,计算其平方的值#includeusingnamespace std;int main(){ int x; cin>>x; /* cout< <
+指针 : 内存地址
取地址运算符"&" &变量名 所取出的变量地址是程序执行时该变量所分配内存的地址,每次执行程序时,变量不一定会被分配在同一内存单元,这取决于本次执行时计算机中哪些内存单元是空闲的 一个变量可能占用多个字节,变量地址指的是变量所占内存单元第一个字节的地址,也称首地址 取地址运算符是单目运算符,操作数必须是变量,其优先级为2级,结合性为从右到左; 例: cout<<x;//显示变量x内存单元中保存的数值 cout<<&x;//显示变量x的内存地址(十六进制) +指针类型 通过地址访问某个变量x的步骤 定义1个专门保存地址的变量(假设为p),该变量称为指针变量 取出变量x的地址,将其赋值给p 通过指针变量p所保存的地址来访问变量x的内存单元 +指向类型 +指针变量 short x=10,y=20;定义指针变量
指向类型指针变量名; 指向类型指定了指针变量能够保存哪种类型变量的地址,或者说制订了指针变量能够指向哪种类型的变量;是指针变量说明符,定义变量语句中,变量名前加""表示该变量为指针变量; 指针变量名需符合标识符的命名规则 例: 已定义变量x和y: int x,y; int p;//"int "表示int型指针 //定义一个int型指针变量p,未初始化,即未指向任何变量 p=&x;//取出变量x的地址并赋值给指针变量p,则p指向变量x 或 int p=&x;//定义一个int型指针变量p,初始化为指向变量x p=&y;//区变量y的地址并赋值个指针变量p,则p修改了指向,现指向变量y+变量的间接访问
指针运算符""指针变量名 按照指针变量所保存的地址访问所指向的内存单元,可写入或读出数据 间接访问之前,指针变量应当指向某个已经存在的变量,即指针变量必须先赋值,再间接访问,否则将出现错误 指针运算符是单目运算符,其优先级为2级,结合性为从右到左+注意
指针变量应当先赋值,再间接访问 +指针变量不能用整数来赋值 int p=10;//错误 int p=0;//赋值为0,表示p不指向任何变量+指针变量的指向那个类型应当与所指向变量的类型一致
void类型 int x=10;double y=10.5 void p; p=&x;//正确 cout<<((int )p);//显示结果为10 void型指针间接访问int型需要强制转换为int p=&y;//正确 cout<<((double )p);//显示结果为10.5+相同类型指针变量之间可以相互赋值
int x=10,pi=&x; double y=10.5,pd=&y;int *p1;
p1=pi;//正确 指向类型相同 结果p1与pi都指向x p1=pd;//错误 指向类型不同void *p2;
p2=pi;//正确 p2=pd;//正确+可以定义指向常变量请的指针,通过该指针变量不呢个修改所指向的常变量的值
const int x=10; x=15;//错误const int p;//指向常变量的指针 p = &x; cout<<p;//正确
*p=15;//错误 间接修改常变量的值错误int y=20;
p=&y; cout<<p;//正确p=15;//错误 不能修改+可以定义指针类型的常变量(即指针常变量),需定义时初始化,以后不能再改变其指向
int x=10,y=20; int *const p=&x; p=&y;//错误 不能重新赋值