C++学习笔记 20200828

这篇C++学习笔记涵盖了C++的特点,如以`int main()`开头的主函数,以及预定义的输出流对象`cout`。详细介绍了C++的字符集、词法记号,包括标识符的构成规则。此外,讲解了C++的基本数据类型,如整型、浮点型、字符型、布尔型,以及常量和变量的概念和用法。还提到了预处理指令`#include`的作用和注释的使用。
摘要由CSDN通过智能技术生成

C++学习笔记_20200828

From:学堂在线 慕课课程《C++语言程序设计》 郑莉 清华大学

第二章 C++简单程序设计

2.2.1 C++的特点和程序实例
#include <iostream>
using namespace std;
int main() {
    cout<<"Hello"<<endl;
    cout<<"Welcome to c++!"<<endl;
    return 0;
}
  • 主函数块 int main() {语句+返回(return int;)},()用于放函数的参数,不可省
  • cout 为预定义好的输出流中的对象,负责向显示器送数据
  • <<为运算符,为流插入运算,将后面的插入到输出流中
  • 数据的输出就是信息的流动,输出流就是程序空间到外部设备的信息流动的通道(向显示器输出信息的这个流通到是默认打开好的,负责向这个流中送数据的就是cout)
  • endl为预定义好的符号,表示行结束。
  • 在主函数的最后都要写一个return 0,其作用是返回这个函数的计算结果。运行环境或操作系统是主函数的调用者,主函数一般没有什么数据需要返回,但有数据需要返回时可以return一个有意义的数据,没什么需要返回的默认返回0.
  • main 前有个int,表示规定这个函数返回结果为一个整数类型(int)
  • #< iostream >包含了iostream这个头文件,其中的内容是符合C++语法的纯文本,给出了想使用的预定义好的输入输出功能的相应的声明和说明。需要声明cout这个对象,通过把iostream include进来并且在cout面前加上std::即可。
  • std属于一个命名空间以避免和自己代码中的或其他库中的函数名、变量名等重名,::表示作用域分辨符。
  • using namespace std是怕在每个cout前加std::太啰嗦,故指定打开这个命名空间(不推荐这样偷懒,尤其在写大型project时)
  • include是一个编译预处理命令,在编译器开始做语法检查和编译之前首先按照include命令到约定的目录下找到iostream(或其他)这个文件,把这个文件的全部内容复制粘贴到include所在的这个位置。
  • //开头的都是注释行,编译器会忽略其后这行的内容
2.2.2 C++字符集和词法记号
C++ 字符集:

CharacterSet

C++构词法

SyntaxNotation

  • 凡是可以出现一个空格的地方,就可以出现任意多个空格,还可以tap,回车,都等同于一个空格
  • 只有标识符程序员可以自己起名字
标识符的构成规则
  • 以大写字母、小写字母或下划线_开始
  • 可以由以大写字母、小写字母、下划线_或数字0~9组成
  • 大写字母和小写字母代表不同的标识符
  • 不能是C++关键字或操作符
2.3.1 基本数据类型、常量、变量
C++能够处理的基本数据类型
  • 整数类型
  • 实数类型(浮点数类型)
  • 字符类型
  • 布尔类型
程序中的数据
  • 常量
    • 在源程序中直接写明的数据
    • 其值在整个程序运行期间不可改变
  • 变量
    • 在程序运行过程中允许改变的数据
整数类型
  • 基本整数类型:int,字节数与机器字长相关
  • 按符号分
    • 符号的(signed)
    • 无符号的(unsigned)
  • 按照数据范围分
    • 短整数(short)
    • 长整数(long)
    • 长长整数(long long)
      ISOstd
字符类型 (char)
  • 容纳单个字符的编码
  • 实质上存储的也是整数
  • 大多数系统按ASCII 码来编码的,每一个单个字符占一个字节。ASCII是一个七位二进制码,一个字节是八位
实数类型(浮点数类型)
  • 实数在计算机中都是用浮点方式表示的
  • 单精度(float)
  • 双精度(double)
  • 扩张精度(long double)
  • C++标准也未规定占多少字节,只是 float字节数不超过double,long double字节数不少于double
字符串类型
  • 字符串常量:双引号中的一串字符
  • 基本类型中无字符串变量
  • 采用字符数组来存储字符串(C风格的字符串,C++不鼓励)
  • 标准C++类库中的String类(C++风格的字符串),提供相应字符串操作功能
布尔类型(bool)
  • 只有两个值:真(true),假(false)
  • 常用来表示关系比较、相等比较或逻辑运算的结果(真用1存储,假用0存储)
例子

DataType

常量
  • 在程序运行的整个过程中其值始终不可改变的量
  • 直接使用符号(文字)表示的值
整数常量
  • 十进制
  • 八进制
  • 十六进制
  • 表示负数:在常量前加个符号 ‘-’
    IntConst
浮点数常量

FloatConst

字符常量
  • 单引号括起来的字符
  • 在内存中的存储形式为ASCII码
  • 有些字符在屏幕上无法显示,用转义字符(Escape Character,ESC)表示,见图ESC
字符串常量
  • C风格字符串常量
    • 双引号括起来的字符序列
    • 在内存中按串中字符的ASCII码依次连续存放,每个字符占一个字节,在常量末尾添加 ‘\0’ 作为结尾标记
    • 哪怕字符串只有单个字符,末尾也有一个0作为结束标记,从而“a”和 ‘a’ 是不一样的
  • String类常对象(此处暂略)
  • 通过给字符串常量加前缀可以改变字符常量或者字符串常量的类型,见下表:
    在这里插入图片描述
变量
  • 在程序运行过程中其值可变的量
  • 实质上是一个名字结合到一组内存单元
  • 可以用地址来使用内存空间
  • 也可以用定义变量的方式使用内存空间
变量定义
  • 数据类型
    变量名1,变量名2,…,变量名n
  • 定义同时可初始化变量
变量初始化
  • 若未初始化,变量初始值的状态根据变量所在的位置不同,初始状态不同
  • 在所有函数之外定义的变量叫全局变量,若不初始化,会自动有一个基础的初始值 (新手建议尽量避免使用全局变量,在C和C++中可以使用指针等方法避免)
  • 在函数体内部定义的变量叫局部变量,若不初始化,值不确定,可能是垃圾数据
  • 变量初始化方式:
    • 用 =,表示用 = 右边的值去初始化=左边的变量: int a =0
    • 在定义变量之后接一个圆括号,其中给出变量的初始值: int a(0)
    • 用大括号(初始化列表的方式):
      • 初始化列表不允许数据丢失:
        • 例如用double值初始化int变量会造成数据丢失,至少小数部分会丢失
      • int a = {0}
      • int a{0}
符号常量
  • 常量定义语句的形式为:
    • const 数据类型说明符 常量名 = 常量值
    • 或数据类型说明符 const 常量名 = 常量值
  • 例如:定义一个代表圆周率的符号常量
    • const float PI = 3.1415926
  • 符号常量在定义时一定要初始化,在程序中间不能改变其值
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值