2.C++的变量,输入,输出

C++的变量,输入,输出

同其它编程语言一样,C++程序要想与用户进行交互,必须有输出,输入,还有存储数据的变量。接下来我们一起来看看在C++中如何进行输入输出,以及变量的存储吧。

输出

在编程业界有个不成文的规定,就是学习一门编程语言,第一个写出来的程序必须得是输出“Hello World”这句话,同时这句话也预示着接下来的学习会一帆风顺,那么我们也来一起写我们的第一个C++程序来输出这句话吧。

#include <iostream>

using namespace std;

int main(){
   
    cout << "Hello world" << endl;
    return 0;
}

如果有过C语言的基础,那么这段代码你一定能看懂个八九不离十,没有也没关系,接下来我会逐行解释这段代码。

#include <iostream>
  • 这是一个预处理指令,它告诉编译器在编译这个 C++ 程序时包含标准输入输出流的头文件 <iostream>。这个头文件中包含了输入输出相关的类和对象,如 coutcin,用于进行标准的输入和输出操作。我们写程序一般都会包含这个头文件,在C语言中包含输入输出标准的头文件叫<stdio.h>
using namespace std;
  • 这行代码使用了 std 命名空间。std 是 C++ 标准库中使用的命名空间,其中包含了许多标准的类、函数和对象。使用 using namespace std; 可以让我们在代码中直接使用 std 命名空间中的元素,而不需要每次都加上 std:: 前缀,如我们在下面使用coutendl以及后面输入会用到的cin都不用写成std::cout类似的写法。但在大型项目中,为了避免命名冲突,一般不推荐使用这种方式,而是使用 std:: 前缀。
int main(){
   
  • 这是 C++ 程序的入口点。main 函数是每个 C++ 程序都必须有的函数,程序从这里开始执行。int 表示这个函数返回一个整数类型的值。在这里强调一点,我们使用的vs2022或者是clion这种IDE,创建一个项目里面只允许有一个main函数,也就是说无论有多少个.cpp源文件,这些文件里面只能有一个main函数,因为main函数是一个项目的入口点,程序执行是从main函数开始执行,如果有多个main函数则会报错,这点和python等编程语言不同。如果是使用Dev-Cpp这类可以单文件编译运行的IDE则不存在这个问题。那么我们如果想在一个项目里面运行不一样的程序,我们可以把前一个main函数命名为main1函数,后面main2main3以此类推,想运行哪个文件就把哪个文件里面包含main函数,但是在编译时所有的源文件都会进行编译,所以其它源文件中有错误,同样会导致编译失败。
    cout << "Hello world" << endl;
  • coutstd 命名空间中的输出流对象,用于输出数据。<< 是输出运算符,它将后面的数据发送到 cout 中。"Hello world" 是一个字符串常量,将被输出。endl 是一个操纵符,用于插入一个换行符并刷新输出缓冲区,使得输出的内容立即显示在屏幕上。
    return 0;
}
  • 这行代码表示 main 函数的结束,并返回一个整数 0。在 C++ 中,返回 0 通常表示程序正常结束。根据约定,程序成功执行并正常结束时返回 0,而其他非零值可以表示程序出现错误或异常情况。

那么这就是我们C++中的输出,下面我们来一起看看变量。

变量

变量,在有的教材中也叫字面量,是差不多的意思,就是使用一个名字来"存储"一个数据,这里的存储打个引号,因为实际上它只是指向内存中存储数据,并不是真正意义上的存储。

一、变量的定义

在 C++ 中,变量是用于存储数据的容器,它们在程序执行期间可以保存不同类型的值。变量在使用前必须先声明,声明变量的基本格式如下:

<数据类型> <变量名>;

例如:

int age;

这里声明了一个名为 age 的变量,其数据类型为 int(整数)。

二、变量的数据类型

C++ 有多种数据类型,以下是一些常见的数据类型:

1. 基本数据类型
  • 整数类型

    • int:通常用于存储普通的整数,其大小一般为 4 个字节,范围通常为 -21474836482147483647
    • short:短整型,通常占用 2 个字节,范围相对较小。
    • long:长整型,一般为 4 或 8 个字节,范围比 int 可能更大。
    • long long:长长整型,通常为 8 个字节,可存储更大范围的整数。
    • unsigned 修饰符:可以加在整数类型前面,用于存储无符号整数,即只存储非负整数,范围从 0 开始,例如 unsigned int
  • 浮点类型

    • float:单精度浮点数,通常占用 4 个字节,用于存储带有小数部分的数字,但精度相对较低。
    • double:双精度浮点数,一般占用 8 个字节,精度比 float 高。
    • long double:更高精度的浮点数,占用空间更大,具体大小可能因编译器而异。
  • 字符类型

    • char:用于存储单个字符,通常占用 1 个字节,存储字符的 ASCII 码值。例如:
    char grade = 'A';
    
    • wchar_t:宽字符类型,用于存储宽字符,通常用于存储 Unicode 字符,占用 2 或 4 个字节。
  • 布尔类型

    • bool:用于存储布尔值,只能取 truefalse 两个值。例如:
    bool isTrue = true;
    
三、变量的初始化

变量可以在声明时初始化,也可以在声明后进行初始化。

  • 声明时初始化:

    int count = 0;
    

    这里count变量在声明时被初始化为 0

  • 声明后初始化:

    int score;
    score = 95;
    

    先声明score变量,然后将其值初始化为 95

四、变量的作用域

变量的作用域是指变量在程序中可见和可访问的范围。

1. 局部变量

在函数或代码块(如 iffor 等)内部声明的变量是局部变量,它们只能在该函数或代码块内使用。例如:

void exampleFunction() {
   
    int localVar = 10;  // 局部变量
    // 这里可以使用 localVar
}
// 这里不能使用 localVar
2. 全局变量

在所有函数和代码块之外声明的变量是全局变量,它们可以在整个程序中被访问(从声明位置开始)。例如:

int globalVar = 20;  // 全局变量

void anotherFunction() {
   
    // 这里可以使用 globalVar
}
五、变量的命名规则
  • 变量名可以由字母、数字和下划线组成。
  • 变量名必须以字母或下划线开头,不能以数字开头。
  • C++ 是区分大小写的,所以 ageAge 是不同的变量。
  • 变量名不能是 C++ 的关键字,例如 intiffor 等不能作为变量名。
六、变量的存储类别
  • 自动存储类别(auto):

    • 这是默认的存储类别,局部变量通常是自动存储类别,它们在函数或代码块开始时创建,在结束时销毁。
    auto int temp = 5;  // auto 关键字在 C++11 之后可用于自动类型推断,这里可直接写 int temp = 5;
    
  • 静态存储类别(static):

    • static 关键字声明的变量在程序的整个生命周期内存在,并且只会初始化一次。
    static int staticVar = 1;
    
    • 静态局部变量在函数调用结束后不会销毁,下次调用函数时,其值仍然保留。
七、常量

常量是在程序运行期间其值不会改变的量。

  • 使用 const 关键字:

    const int MAX_VALUE = 100;
    

    这里MAX_VALUE的值在程序运行期间不能被修改。

八、引用

引用是 C++ 的一个重要特性,它为已存在的变量提供了一个别名。

  • 声明引用:

    int num = 5;
    int& ref = num;  // ref 是 num 的引用
    

    ref的操作等同于对num的操作,例如:

    ref = 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵鑫亿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值