c++(2)简单程序设计(一)

c++简单程序设计(一)

说明:本系列博客用来记录在学习c++语言时的笔记,便于与同学相互之间的学习讨论。(注:笔记会记录我学习过程中的重难点,不包括学习的所有知识点。)

C++简单程序设计(一)

1,C++语言概述

(1)C++的产生与发展。

(2)C++的特点:兼容C,支持面向过程的程序设计;支持面向对象的方法;支持泛型程序设计方法。

(3)命名空间:避免命名冲突,std是C++标准库的命名空间( namespace)名,using namespace std表示打开std命名空间。

(4)一个简单的小程序:

 #include <iostream>

using namespace std;

int main() {
     cout << "Hello!" << endl;
     cout << "Welcome to c++!" << endl;
     return 0;
}
运行结果:
Hello!
Welcome to c++!

(5)C++字符集和词法记号:
字符集:略。
词法记号:1.关键字:C++预定义的单词;
2.标识符:程序员声明的单词,它命名程序正文中的一些实体;
3.文字:在程序中直接使用符号表示的数据;
4.分隔符 () {} , : ; 用于分隔各个词法记号或程序正文;
5.运算符(操作符):用于实现各种运算的符号;
6.空白符:空格、制表符(TAB键产生的字符)、垂直制表符、换行符、回车符和注释的总称;
标识符的构成规则:
以大写字母、小写字母或下划线()开始。
可以由以大写字母、小写字母、下划线(
)或数字0~9组成。
大写字母和小写字母代表不同的标识符。
不能是C++关键字或操作符。

2,基本数据类型,变量,常量

(1)整数类型:
基本的整数类型:int
按符号分:
符号的(signed)
无符号的(unsigned)
按照数据范围分:
短整数(short)
长整数(long)
长长整数( long long )
ISO C++标准并没有明确规定每种数据类型的字节数和取值范围,它只是规定它们之间的字节数大小顺序满足:
(signed/unsigned)signed char ≤ (unsigned) short int ≤ (unsigned) int ≤ (unsigned) long int ≤ long long int

(2)字符类型(char)
容纳单个字符的编码;
实质上存储的也是整数。

(3)浮点数类型
单精度(float)
双精度(double)
扩展精度(long double)

(4)字符串类型
有字符串常量
基本类型中没有字符串变量
采用字符数组存储字符串(C风格的字符串)
标准C++类库中的String类(C++风格的字符串)

(5)布尔类型(bool)
只有两个值:true(真) 、false(假)
常用来表示关系比较、相等比较或逻辑运算的结果

(6)常量:整数常量;浮点数常量;字符常量;C风格字符串常量(一对双引号括起来的字符序列;在内存中按串中字符的排列次序顺序存放,每个字符占一个字节;在末尾添加 ‘\0’ 作为结尾标记);

(7)变量

(8)符号常量:常量定义语句的形式为:
const 数据类型说明符 常量名=常量值;
或:
数据类型说明符 const 常量名=常量值;
例如,可以定义一个代表圆周率的符号常量:
const float PI = 3.1415926;
符号常量在定义时一定要初始化,在程序中间不能改变其值。

3,运算和表达式

(1)算数运算:
基本算术运算符 + - * /(若整数相除,结果取整);%(取余,操作数为整数);优先级与结合性:先乘除,后加减,同级自左至右 ;++, --(自增、自减)例:i++; --j;

(2)赋值运算:= ; += ; -= ;×= ;/= ;…

(3)逗号运算
格式:表达式1,表达式2;
求解顺序及结果:先求解表达式1,再求解表达式2,最终结果为表达式2的值;
例:a = 3 * 5 , a * 4 最终结果为60;

(4)关系运算:
关系运算是比较简单的一种逻辑运算,优先次序为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NvdI1ncT-1615379941076)(/images/posts/cpp_learning_process/6.png)]

关系表达式是一种最简单的逻辑表达式,其结果类型为 bool,值只能为 true 或 false。

(5)逻辑运算与逻辑表达式:
!(非); &&(与); ||(或);
逻辑运算结果类型:bool,值只能为 true 或 false

(6)条件运算与条件表示式:
一般形式: 表达式1?表达式2:表达式3 ; 表达式1必须是bool类型,true,执行2;false执行3;
条件运算优先级高于赋值,低于逻辑。

4,sizeof运算和位运算

(1)sizeof运算
语法形式:sizeof (类型名)或 sizeof 表达式;
结果值:“类型名”所指定的类型,或“表达式”的结果类型所占的字节数。例:sizeof(short);sizeof x;

(2)按位与(&)
运算规则:
在这里插入图片描述

用途:
将某一位置0,其他位不变。例如:将char型变量a的最低位置0: a = a & 0xfe; ;(0xfe:1111 1110);
取指定位。例如:有char c; int a; 取出a的低字节,置于c中:c=a & 0xff; (0xff:1111 1111);

(3)按位或(|)
运算规则:
在这里插入图片描述

用途:
将某些位置1,其他位不变。例如:将 int 型变量 a 的低字节置1: a = a | 0xff;

(4)按位异或(^)
运算规则:
在这里插入图片描述

用途举例:使特定位翻转(与0异或保持原值,与1异或取反)

(5)取反(~)
运算规则:
在这里插入图片描述

(6)移位(<<,>>)
左移运算(<<):左移后,低位补0,高位舍弃。;
右移运算(>>):右移后:低位:舍弃;高位:无符号数:补0,有符号数:补“符号位”;

5,运算优先级与类型转换

(1)运算符优先级
在这里插入图片描述

(2)混合运算时的类型转换
一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致。
在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。
在这里插入图片描述

将一个非布尔类型的算术值赋给布尔类型时,算术值为0则结果为false,否则结果为true。
将一个布尔值赋给非布尔类型时,布尔值为false则结果为0,布尔值为true则结果为1
将一个浮点数赋给整数类型时,结果值将只保留浮点数中的整数部分,小数部分将丢失。
将一个整数值赋给浮点类型时,小数部分记为0。如果整数所占的空间超过了浮点类型的容量,精度可能有损失。

(3)显示转换
显式类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。
语法形式:
类型说明符(表达式)
(类型说明符)表达式
类型转换操作符<类型说明符>(表达式)
类型转换操作符可以是:
const_cast、dynamic_cast、reinterpret_cast、static_cast


转载请注明:Daniel的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值