C++笔记
c++简单程序设计(一)
1.c++的特点和程序实例
1.兼容C,支持面向过程的程序设计
2.支持面向对象的方法
3.支持泛型程序设计方法
1.实例:
#include<iostream>
using namespace std;
int main()
{
cout<<"hello!"<<endl;
cout<<"welcome to C++!"<<endl;
return 0;
}
运行结果:
hello!
welcome to c++!
2.c++字符集和词法记号
1.关键字
C++预定义的单词
2.标识符
程序员声明的单词,它命名程序正文中的一些实体
-
分隔符
() {} ,: ;
-
运算符
3.基本数据类型常量、变量
(1)整数类型:
基本整数类型:int
按照符号分: 符号的(signed)
无符号的(unsigned)
按照数据范围分
短整数(short)
长整数(long)
长长整数 (long long)
(2)字符类型(char)
(3)浮点类型
单精度(float)
双精度(double)
扩展精度(long double)
(4)字符串类型
有字符常量 、基本类型中没有字符串变量、采用字符数组存储字符串
标准C++类库中的String类
(5)布尔类型
只有连个值:true(真)、false(假)
常用来表示关系比较、相等比较或逻辑运算结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tx3wgu0u-1581761494168)(C:\Users\小乾子\AppData\Roaming\Typora\typora-user-images\1581653838038.png)]
程序实例
#include <iostream>
using namespace std;
int main()
{
int radius;
cout << "Please enter the radius!\n";
cin >>radius;
cout<<"The radius is:"<<radius<<'\n';
cout<<"PI is"<<3.14<<'\n';
cout<<"Please enter a different radius!\n";
cin >>radius;
cout<<"Now the radius is changed to:"<< radius<<'\n';
return 0;
}
const double pi(3.14159);//定义的符号常量pi
4.算数运算符与赋值运算符
(1)基本算数运算
+、- 、*、/ 、%
优先级与结合性
自增、自减运算符
(2)赋值运算符
复合赋值:
例:a+=3等价于a=a+3
5.逗号运算符、关系运算符、逻辑运算符和条件运算
(1)逗号表达式
a =3*5,a*4 最终结果为60
(2)关系运算符与关系表达式
关系运算符是比较简单的一种逻辑运算,优先次序为:
< <= > >=
关系表达式是最简单的逻辑表达式
其结果类型为bool,值只能为true或false
(3)逻辑运算符
逻辑运算符:
!(非)
&&(与)
两边的都为真,则为真
||(或)
只要有一个为真即可
优先级次序: 高 低
逻辑运算结果类型:bool,值为true或false
逻辑表达式
例如:(a>b)&&(x>y)
(4)条件运算符与条件表达式
一般形式:
表达式1?表达式2:表达式3
表达式1必须是bool类型
执行顺序:
先求解表达式1,若表达式1的值为true,则求解表达式2,
表达式2的值为最终结果,若表达式1的值为false,则求解
表达式3,表达式3的值为最终结果
6.sizeof运算、位运算
(1)sieof运算符
语法形式:
sizeof(类型名)或sizeof表达式
结果值:
“类型名”所指定的类型,或“表达式”的结果类型所占的字节数
例子:
sizeof(short)
(2)位运算——按位与(&)
运算规则
将两个运算量的每一个位进行逻辑与操作(都为1则为1)
(3)位运算——按位或(|)
运算规则
将两个运算量的每一个位进行逻辑或操作(有1则为1)
(4)位运算——按位异或
运算规则
将两个位对应相同,则结果为0,对应位不同,则结果为1
(5)位运算——移位(<< >>)
左移运算(<<)
左移后,低位补0,高位舍弃
右移运算(>>)
右移后,低位舍弃
7.运算符优先级、类型转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7FuZCbDm-1581761494169)(C:\Users\小乾子\AppData\Roaming\Typora\typora-user-images\1581672922013.png)]
(1)类型转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eC4FEUmB-1581761494170)(C:\Users\小乾子\AppData\Roaming\Typora\typora-user-images\1581673021400.png)]
注意:将一个非布尔类型的算数值赋给布尔类型时,算数值为0则结果为false,否则结果为true;将一个布尔值赋给非布尔类型时,布尔值为false则结果为0,布尔值为true则结果为1
右移后,低位舍弃
7.运算符优先级、类型转换
[外链图片转存中…(img-7FuZCbDm-1581761494169)]
(1)类型转换
[外链图片转存中…(img-eC4FEUmB-1581761494170)]
注意:将一个非布尔类型的算数值赋给布尔类型时,算数值为0则结果为false,否则结果为true;将一个布尔值赋给非布尔类型时,布尔值为false则结果为0,布尔值为true则结果为1