C++编程入门

第一个C++程序

编译预处理:所有#开头的代码
  • 编译预处理 :编写完源程序,在执行编译之前,编译器 会首先调用预处理器,找到所有以#开头的代码行进行处理。

    • 预处理指令include意思是找到后面跟随的文件,并且加载文件内容到程序中

    预处理器的典型操作包含在源代码被编译前,进行内容的替换添加

    • 头文件是预先制造好的工具库,其中包含了帮助程序员快速实现功能的工具

    系统头文件iostream包含了使用程序进行输入输出的工具

    例如:可以使用cout进行消息显示

    • 程序员可以自行编写头文件,用来制造自己的工具
    • 在编译预处理之后,源代码文件将和头文件组合起来,在编译的下一阶段使用
使用命名空间namespace
  • 命名空间的目的是让大型程序在组合多个厂商的代码时,便于管理重复命名的功能模块。是C++中的一项特性。

Tips: 这就好像这样一种情况,当一个班上有两个名叫张爽的学生时,为了明确区分他们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。

  • 关于输入输出的组件都被存放在标准命名空间std
    • iostream中用于输出的cout实际名称为std::cout,用于换行的endl实际名称为std::endl
  • 使用using声明之后,程序员可以直接使用命名空间中定义的名称,不需要额外指定前缀
程序中的主函数main
  • C++程序的运行从主函数 -main()开始。
  • 每个C++程序有且仅有一个main()函数,程序在运行时会自动调用main()函数。
  • 主函数是用来实现一个或多个功能的代码块
    • int main()中的int指定了函数的返回类型
    • 以左大括号"{"开始,右大括号"}"结束
    • 在大括号"{}"之间的部分称为程序主体
  • return语句代表了函数将会返回的内容
    • 当主函数返回一个0时,说明程序正常运行结束
    • 返回其他非0的数值会造成系统认为程序异常退出
程序主体:cout打印内容
  • C++中,使用标准库函数提供的cout""中间的内容输出打印在屏幕上,并且进行换行。
cout<<"输出内容"<<endl;
  • 每一个分号";"表示一个语句的结束
    • 函数体的每一句代码后面都需要";"存在
  • 输出借助cout,可以通过插入操作符"<<"赋予输出内容
    • 上示例代码中的输出内容为Hello, World!
  • 换行符endl可以使内容输出之后,光标回准到下一行第一个字符,即换行
注释-藏在代码中的说明书
  • 注释用来标记语句的作用或者解释复杂代码块的功能,可以提高程序的可读性,是程序员为读者作的说明。

  • 在编译过程中,注释中的所有内容会被编译器自动忽略,最终也会被执行

  • 在C++中,以双斜杠 "//"用来注释内容,之后的内容直到行末都为注释

  • 注释可以单独位于一行上,即占一整行;也可以与代码出现在同一行中。

Tips:使用注释还可以在调试过程中让某一行代码失效,因此,可以通过注释某些代码,来检验程序的运行情况。

//导入系统输入输出头文件 iostream
#include <iostream>
//使用标准命名空间 std
using namespace std;
int main() {
    // TODO 将Hello, World!打印在屏幕上,并且进行换行
    cout << "Hello, World!" << endl;
    return 0;
}

变量

变量指的是会随着程序运算而改变的量

  • 计算机的存储功能会使用内存实现。
  • 计算机中的操作系统一般会把内存划分成不同区域来存储数据,以便于管理。
  • 内存中每个基本存储单元可以存放一个字节的数据,每个字节具有8位,也就是8个比特(bit)。
  • 每个内存单元有一个唯一的地址,常用一个16进制数表示和区分。

变量的声明

  • 变量是专门用来存储数据的容器,会根据数据类型决定容量大小。

  • 变量对应着内存中的一个地址,用于计算时数据的存储和读取 。

  • 一般的声明方式为 数据类型 变量名称

 // 导入系统输入输出头文件 iostream
  #include <iostream>
  // 使用标准命名空间 std
  using namespace std;
  
  int main() {
      // TODO 声明可乐数量变量 coke
      int coke;
      // TODO 声明爆米花数量变量 popcorn
      int popcorn;
      // TODO 声明消费总额变量 money
      int money;
      
      return 0;
  }

变量命名规则

在C++中,变量名称也叫做标识符,表示⽤来标记和识别不同变量的不同的符号,有固定的构造规则

  • 只能由字⺟ 、数字和下划线组成;特别的;在C++中,标识符中的英文字母是区分大小写的;

    • 例如:sweet_popcorn合法,但是zero&coke使用了符号&,因此不合法。
  • 数字不可以出现在第一个位置上;

    • 例如:coke330合法,但是330coke以数字作为开头,因此不合法。
  • 在C++中,标识符中的英文字母是区分大小写的;

    • 例如:coke330Coke330表示的是完全不同的变量名称,即表示不同的标识符。
  • C++的关键字(保留字)不可以⽤做标识符;

    • 例如:pout合法,但是cout是C++的关键字,不可以用作标识符,因此不合法 Tips: 无需背诵所有关键字
  • 常见的关键字有coutintinclude等具有特殊含义的字符

  • 完整的表格见参考资料

变量的初始化

  • 变量的初始化 即赋予变量一个初始值。

  • 变量在初始化时应该根据数据类型进行赋值,否则将会发生错误.

    • 例如:不能把小数赋值给一个整数类型的变量 int a = 3.14 ;是错误的。
  • 未进行初始化的变量具有不确定的数值,直接进行计算将会发生错误

    • 例如:没有初始化sum值,就进行相加计算。 sum = sum + 1; 是不能够被执行的

变量的输出

输出即在屏幕上输出展示信息内容。

常量

字面量-装在变量里的常量

内存可以看作一个充满盒子的仓库,每个盒子可以储存计算时用到的数据,称为一个变量

那么,计算机如何定义存放在变量中的数据呢?

  • 字面量就是存放在变量中的数据。
  • 字面量经常会被装到变量中使用,这个操作叫做赋值,一般写法为 变量名 = 字面量

整数和浮点字面量-数学计算中的常量

  • 整数字面量是没有任何小数或指数部分的数字字面量,与数学中的整数直接关联。

    • 十进制:直接写出的整数。

      例如:023-1024

    • 八进制:以数字0开头的整数,有效数字为0~7,并且不带有正负号。

      例如:01260163

    • 十六进制:以0x0X开头的整数,有效数字为0~9A~Fa~f),并且不带有正负号。

      例如:0x12a0xf39

  • 浮点字面量是有分数形式或指数形式的数字字面量,与数学中的小数直接关联。

    • 小数形式:由数字和小数点组成

      例如:0.6630.014.15926

    • 指数形式:在数学中,一个可以用幂的形式来表示的形式。在C语言中,则以eE后跟一个整数来表示以10为底数的幂数。

      • eE的左侧必须要有数字
        • eE的右侧为幂次的数值,必须为整数
        • 上述小数可以等价表示为:6.6E-130.0e00.01415926E3

字符字面量-表达字符的常量

分为单字符字面量转义符字面量

  • 单字符字面量

    通过将单个字符括在单引号内来创建字符字面量

    例如:'a''m''F''2''}'等。

  • 转义符字面量

    使用’'开头的转义字符序列来表示一个特殊字符。

Tips:有时,在C++编程中必须使用不能键入或具有特殊含义的字符。例如,换行符(回车),制表符,问号,引号等。为了使用这些字符,就会使用’'开头的转义字符序列用来表示一个特殊字符。

例如:

   `'\n'`表示换行符;

   `'\t'`表示制表符; 

   `'\''`表示单引号字符(不被解析成字符外的单引号);

   `'\\'`表示真正的斜杠字符。

所有的字符字面量在计算机里都是有一个编码的,为了避免大家用不同的编码,造成混乱,美国的组织就出台了ASCII编码(American Standard Code for Information Interchange:美国信息交换标准代码),所有字符都采用ASCII编码,共有128个字符。每个字符都对应着一个0~127之间的整数。

imgimg

字符串字面量-构成输出的常量

  • 字符串字面量是由一对双引号括起来的字符序列

  • 字符串中可以包含类似于字符字面量普通字符以及转义字符

  • 字符串除了存储所包含的字符外,还额外包含一个结束标志'\0'

    '\0':结束符; ASCII编码对应数值为0的字符

符号常量-具有名称的常量

  • 在C++中,随着程序运算不改变的量叫做符号常量,可以使用const关键字来定义并且初始化:
const int kCokePrice = 5;
const int kPopcornPrice = 10;
  • const是⼀个修饰符,加在数据类型int的前⾯,用来给这个变量加上一个不变的属性
    • 初始化时也可以将修饰符const与数据类型int调换位置,写成int const kCokePrice = 5;
  • 符号常量命名时参照Google 开源项目风格指南,以 “k” 开头,大小写混合
    • 实际编程过程中的名字最好简单易懂,用具有对应含义的英文或者拼音来表示
  • 定义的时候必须进行初始化,且在初始化之后不能再进行修改与重新赋值
    • 如果试图对常量做修改,例如把它放在赋值符号的左边,就会被编译器发现并指出错误

最后,总结一下符号常量的初始化伪代码:

const 数据类型 常量名称 = 初始值;

或者

数据类型 const 常量名称 = 初始值;

🌰

int main() { 
    // 字面量
    cout << 1 << " 是一个整型字面量" << endl;
    cout << 0.5 << " 是一个浮点型字面量" << endl;
    cout << 'a' << " 是一个字符型字面量" << endl;
    cout << "这句话就是一个字符串型字面量\n" << endl;
    
    // 定义符号常量表示可乐单价
    const int kCokePrice = 5;
    // 定义符号常量表示爆米花的单价
    int const kPopcornPrice = 10;
    
    // 将可乐与爆米花的单价分别打印在屏幕上,并且加上提示信息
    cout << "CokePrice is: " << kCokePrice << endl;
    cout << "PopcornPrice is: " << kPopcornPrice << endl;
    
    return 0;
} 
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值