C++学习第一课

一、bool型

  1. bool 类型是 C++ 语言基本数据结构之一,bool 类型取值范围仅有两个值:true 和 false。在做逻辑运算时,默认非零即为 ture。
    bool flag = true;

二、命名空间(Namespace)

不同的人开发同一个系统,命名可能会发生冲突,就可以用命名空间来定义变量,互不影响,使用方法:

namespace Li{   //小李的变量声明
    int flag = 1;
}
namespace Han{   //小韩的变量声明
    bool flag = true;
}

这样定义变量,在调用的时候有多种调用方法:

1.域解析操作符(::),前面是命名空间,后面是变量

Li::flag = 0;        //使用小李定义的变量flag
Han::flag = false;   //使用小韩定义的变量flag

2.using申明,后面使用变量时,在没给出命名空间时,默认的是using后给出命名空间的变量

using Li::flag;
flag = 0;  //使用小李定义的变量flag
Han::flag = false;  //使用小韩定义的变量fla

3.using不但可以对单个变量,还可以对整个命名空间,这样,后面没给出命名空间的时候,默认的都是using后面的命名空间

using namespace Li;
flag = 0;     //使用小李定义的变量flag
Han::flag = false;   //使用小韩定义的变量flag

三、C++的输入输出

  • 因为C++兼容C,所以C的printf()和scanf()依然可以使用,但是C++又从新给出了新的方式输入和输出,如cin(标准输入),cout(标准输出),cerr(标准错误),都包含在标准库(<iostream>)当中,其本质也是函数的调用。
#include<iostream>
using namespace std;

int main()
{
    int x;
    float y;
    cout<<"Please input an int number:"<<endl;//endl表示换行输出
    cin>>x;
    cout<<"The int number is x= "<<x<<endl;
    cout<<"Please input a float number:"<<endl;
    cin>>y;
    cout<<"The float number is y= "<<y<<endl;   
    return 0;
}
  • 上面可以看出来cout有连续输出的功能,同样,cin也有连续输入的能力,数据之间用空格隔开
#include<iostream>
using namespace std;

int main()
{
    int x;
    float y;
    cout<<"Please input an int number and a float number:"<<endl;
    cin>>x>>y;
    cout<<"The int number is x= "<<x<<endl;
    cout<<"The float number is y= "<<y<<endl;   
    return 0;
}
  • 在C语言中,我们使用
    while(scanf("%d",&a) != EOF)

    来达到连续输入,但是C++也给出了用cin来达到连续输入,因为cin在有输入的时候返回1,无输入的时候返回0,使用:

    while(cin>>a)

四、C++的引用

C++的引用类似于C语言的指针,只是在申明的时候,使用了&来代替*

int a = 10;
int &b = a;
cout<<a<<" "<<b<<endl;
cout<<&a<<" "<<&b<<endl;

这个将输出

10 10
0018FDB4 0018FDB4

下面一个例子:

#include<iostream>
using namespace std;

void swap(int &a, int &b);

int main()
{
    int num1 = 10;
    int num2 = 20;
    cout<<num1<<" "<<num2<<endl;
    swap(num1, num2);
    cout<<num1<<" "<<num2<<endl;
    return 0;
}

void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

上一篇:在 Reddit 中代码部署的演进


下一篇:记一次学习范围for的时候碰到的for循环内加注释的蜜汁bug