C++入门教程(一)

背景

最近在读叔本华时他提到了幸福的两大敌人,一个是痛苦,一个是厌倦,痛苦源于生活的困顿,厌倦是来自内心的空洞。自工作后,除了工作花费了大量的时间在一些无实际意义的事情上,游戏或者短视频,好像放弃了独立思考的能力,陷入了一个怪圈,一边对这种方式嗤之以鼻,一边又不知道从哪开始重塑自己的生活方式。人生的时间是有限的,可能我们可以做的就是尽可能多的把时间花在一些有意义的事情上,由此花在无意义的事情上的时间自然而然就减少了,从而打破这个循环。所以开始阅读,又再一次开始通过博客来梳理自己的知识体系。由于工作与视频编辑相关,所以想补充一下OpenGL和C++相关的知识,之后可能会通过两个系列来记录下自己的学习内容,如果能够帮助到同样有需要的人自然再好不过。

前言

自这篇文章我们即将开始C++的奇幻之旅,其内容主要是读C++ Primer的总结和笔记,有兴趣可以找原版书看看,对于学习C++还是有很大帮助的。这篇文章将从一个经典的程序开始介绍C++的类型、变量、表达式、语句、控制流和函数的相关内容,由此可以建立起对于C++总体上的认识。

一个简单的程序

每一个C++程序都包含了一个或多个函数,其中main函数是必须的,所以一个C++程序至少含有一个main函数,操作系统通过调用main函数来执行你写的C++程序。下面就是一个简单的C++程序,只包含了一main函数。如代码所示,一个函数至少包含四个部分,返回类型、函数名、参数列表和函数体。这个main函数返回值是int,这是C++的内置类型(是由语言本身定义的), main是函数名,()中是参数列表(可以为空), 最后{}中的是函数体,是函数执行的具体过程。在例子中只包含了一个语句,return会终止函数执行并返回一个值(0)给函数调用者,0是int类型,也就是整数。函数的返回值要与函数定义的返回类型相同,否则会产生错误,无法编译通过。

int main()
{
    return 0;
}

在大多数情况下main函数的返回值是一个标志位,如果是0表示程序执行成功,如果返回非0则表述程序执行失败

输入输出

在程序执行过程中需要与外部进行交互,但是C++并未为输入输出提供专门的语句,而是提供了扩展库iostream来实现输入输出。该库提供了两个基类,一个是ostream用于输出流,istream用于输入流,并且提供了四种IO对象,分别是cin,cout, cerr和clog,cin是用于处理标准输入,其发音类似于see in,cout用于处理标准输出,发音类似see out,cerr是用于输出erro和warning,clog则是用于输出程序执行过程中的重要信息。以下就是一个简单却简单的程序,会在屏幕上打印“hello w
orld”。其中std::cout<<"hello world"<<std::endl;是一个表达式,表达式一般由一个或多个操作数和(通常)一个操作符组成,其中<<是输出操作符,用于标准输出,输出操作符需要包含两个操作数,在输出操作符的左侧必须是ostream对象,右侧则是需要输出的值。可以看到连续使用了两次输出操作符,那是因为输出操作符的返回值为ostream对象。

# include<iostream>
int main() {
    std::cout<<"hello world"<<std::endl;
    return 0;
}

从下面例子可以看出cin和cout用法类似,需要用>>输入标识符。

可以注意到,我们使用的是std::cout而不是cout,std是命名空间,命名空间是为了我们定义的函数与变量与库中的函数与变量命名冲突,std是标准库的命名空间。::是范围操作符,``std::cout```代表着我们使用的cout是定义在std的命名空间中。

# include<iostream>
int main() {
    std::cout<<"please enter two numbers:"<<std::endl;
    int v1, v2;
    std::cin>>v1>>v2;
    std::cout<<"The sum of v1 and v2 is "<<v1 + v2<<std::endl;
    return 0;
}

运行结果如下

please enter two numbers:
3 4
The sum of v1 and v2 is7

注释

我们写的例子都是极其简单的程序,在实际的生产环境中,程序会十分的复杂,必】注释是比不可少的,C++的注释分为单行注释和多行注释。C++使用//进行单行注释,/**/实现多行注释,注释最好不要嵌套。

控制流

C++的控制流于C语言和Java的控制流并没有多大的差别,while和for循环,if判断语句。

while语句

当while中的判断条件为true是会循环执行while内的语句

# include<iostream>
int main() {
    int sum = 0;
    while(i <= 10) {
        sum  = sum + i;
        i++;
    }
    std::cout<<sum<<std::endl;
    return 0;
}
for 循环
# include<iostream>
int main() {
    int sum = 0;
     for(int i = 0; i <= 10; ++i) {
        sum = sum + i;
    }
    std::cout<<sum<<std::endl;
    return 0;
}
if语句
# include<iostream>
int main() {
    int value;
    int curValue;
    int sum = 0;
    if(std::cin>>value){
        while (std::cin>>curValue)
        {
            if (value == curValue) {
                sum = sum + 1;
            } else {
                std::cout<<sum<<std::endl;
                return 0;
            }
        }
    }
    return 0;
}

最后

通过这篇文章,我们已经对C++有了基本的认识,初步了解了一个C++程序的基本组成,了解了输入输出,命名空间,注释,控制流。更多文章可以关注微信公众号QStack。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值