C++郑莉笔记 chapter2 C++语言简单程序设计

chapter 2 C++语言简单程序设计

C++语言特点

  • 兼容C语言
  • 支持面向对象的方法
  • 同时支持面向过程与面向对象的程序设计,而非纯正的面向对象语言

HelloWorld

    #include<iostream>
    using namespace std;
    int main(){
    cout<<"Hello World\n"<<endl;//cout为一个输出流对象,将接受的内容输出到标准输出设备上
    return 0;
    }

词法记号

此法记号是最小的词法单元包括:

  • 关键字
  • 标识符
  • 文字
  • 操作符(运算符)
  • 分隔符
  • 空白 (空白是对空格、制表符、垂直制表符、换行符、回车符和注释的总称)

C++基本数据类型

类型名大小(B)取值
bool1false(0)、true(1)
char1-128~127
int4INT_MIN~INT_MAX
float4FLT_MIN~FLT_MAX
double8
auto~
修饰符含义及可修饰类型
unsigned无符号,修饰int、char、short、long
signed有符号,修饰int、char、short、long
short短,修饰int(int可省略)
long长,修饰int(int可省略)、double
long long长长,修饰int(int可省略)

注意:

  • int默认为signed,而char与int、short、long不同,未规定其符号,其会因不同的编译环境而异。
  • climits头文件引入了一系列通过#define预处理指令▲定义的符号常量(symbolic constant),这些常量可以帮助我们确定各种类型的取值范围及存储比特数,使用float类型的宏定义常量需使用<cfloat>

常量

常量指在程序运行的整个过程中其值始终不改变的量

整形常量

十进制、
八进制(以0开头)、
十六进制(以0x开头)

对整形常量可以使用后缀:L(l)表示类型至少是long,LL(ll)表示类型至少是long long,用U(u)表示unsigned类型

实型常量

即以文字形式出现的常量,有两种表示形式

一般形式指数形式
12.5、-12.5等0.345E-1、0.345e2等

实型常量默认为double类型、使用后缀F(f)可以使其成为float类型

字符型常量

字符型常量为单引号括起的一个字符,如’a’、‘0’

字符串常量

字符串常量又双引号括起来的字符序列,如"hello"、“world”

字符串与字符在内存中的存储形式不同,字符串结尾会存储一个’\0’作为结束标志

布尔(bool)常量

false(0)与true(1)

变量

变量声明与定义

如果一个变量除了在定义它的源文件中可以使用,还能被其他文件使用,那么就称这个变量是外部变量。在其它文件中使用其需要使用extern关键字声明。外部变量是可以为多个源文件所共享的全局变量。

对外部变量的声明可以是定义性的声明,即在声明的同时定义(分配内存,初始化),也可以是引用性声明(引用在别处定义的变量)

变量初始化

变量存储类型

  • register 存放在通用寄存器
  • extern 在所有函数和程序段可用
  • static 在内存中固定地址存放,在整个程序运行期间有效
  • thread_loacl 具有线程存储生存期
  • mutable 只能用于类数据成员

符号常量

constexpr与常量表达式

运算符与表达式

数据类型转换

隐式类型转换

  • 变量初始化或赋值时,值与变量类型不一致
  • 表达式中不同类型的数据进行运算时
  • 参数传递时

显式类型转换

  • C语言风格(数据类型)变量名
  • C++语言风格数据类型(变量名)
  • 显式类型转换是不安全的,会丢失数据精度
  • 显式类型转换是暂时的,一次性的

语句

语句与表达式区别:表达式仍可以作为另一个复杂表达式的一部分参与运算,而语句则不能,以’;'结尾

数据的输入输出

格式化输入输出

算法基本控制结构

顺序结构

选择结构

  • if结构
  • if…else if…else结构
  • switch case结构

循环结构

  • while结构

  • do…while结构

  • for结构

    特殊的范围for语句,可以用于数组、vector、string等类型的对象,其共同点是拥有能返回迭代器的begin和end成员

    for(auto &a:s)
    

    其中s为以上所述的类型之一,等价于

    for(auto beg=s.begin(),end=s.end();beg!=end;++beg)
    

其他控制语句

  • break
  • continue
  • goto语句

变量的实现机制

在程序中指明不同变量的数据类型,方便在编译阶段编译器根据不同的数据类型选取适当的指令

类型别名

typedef的两种用法

  • 为已有类型声明别名

    typedef typyname newtypename //则可以在程序中将newtypename作为typename的别名 如typedef int zhengshu
    using newtypename=typename //与上述方法效果一致,但是
    
  • 任何声明变量的语句前加上typedef后原来的变量都将变成一种新类型

    tyepdef int*c;//声明了一种名为c的变量类型,可以用于定义int类型指针
    c(d);//声明d为int* 类型
    

decltype

  • 作用是返回已有变量的类型

    decltype(i) j;//作用是声明一个与i变脸相同类型的变脸j
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值