C/C++知识点:C到C++ 快速过度 A C++基本框架
小标 2018-07-10 来源 : 阅读 843 评论 0

摘要:本文主要向大家介绍了C/C++知识点:C到C++ 快速过度 A C++基本框架,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点:C到C++ 快速过度 A C++基本框架,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

摘要: C++功能强大 但语法内容多而复杂 这些是对以往知识的一个回顾 浅显但是系统 希望能够对一些人有用 不用再去看死厚死厚的C++ Primer Plus

单从语法上讲,C++继承了C中几乎所有的关键字,因此在C++中使用C语言完全没有问题。

需要注意的是,printf() 和 scanf() 是库函数,他们并不是C语言的一部分。比如,你不包含头文件stdio.h的时候便无法使用他们,但int,while,for等关键字仍然可以使用。

在C++中使用C语言的库函数时,在包含头文件的部分,需要作一些变更:
我们使用 #include <cstdio>,而不是 #include <stdio.h>。这对于C中的其他头文件也一样,比如 <ctype.h> , <string.h> 在C++中都要用 <cctype> 和 <cstring> 代替。

学习语言时我们最先接触的总是程序框架,之后学习的内容只需在此之上进行添加和修改:

 

#include <iostream>

using namespace std;

int main()

{

    return 0;

}

这是C++的基本框架,它和C的:

#include <stdio.h>

int main()

{
    return 0;

}

稍有不同。

我们各自包含了他们的一个基本库函数的头文件,它们各自含有C++和C中的输入输出函数。

对C而言,我们用下面的程序进行输入输出:

#include <stdio.h>

int main()

{

    int n;

    if(scanf("%d", &n))

        printf("I entered a number %d to n.\n", n);    

    return 0;

}

 

我在这里很矫情地使用了if语句,提醒大家scanf()是有返回值的,它返回正确读入变量的个数。

而在C++中,我们这么干:

#include <iostream>

using namespace std;

int main()

{

    int n;

    if(cin >> n)

        cout << "I entered a number " << n << " to n.\n";

    return 0;

}

 

不难猜出cin和cout的作用,它们和scanf()还有printf()的作用是类似的。而且十分方便,我们终于不用记忆那些繁琐的格式说明符了,C++中的cin和cout会自动判别n是一个in型变量。需要注意的是 >>和<< 是C++中的操作符。

另外,if(cin >> n)是有些奇怪的,scanf()有返回值,但cin >> n是个什么东西?它有值么?事实上cin是一个对象,它和 >> 构成了操作符重载,重载函数的返回值是对象本身。头晕么?这涉及到函数重载的内容,在此暂时不作探讨。但我们要知道,这么用cin是合理的:

cin >> n >> m;(m假设已声明。) 可以这么理解(cin >> n) >> m   (cin >> n)就是cin。

这表示依次向n和m中输入,至于m是个什么类型变量,这个cin它会知道的,并会按照这种类型的标准向其输入,就像用了对应了各式说明符一样,这和cout一致。

值得一提的是,C++中多了:

using namespace std;

这行代码。

你会发现using和namespace都是关键字,它们是C++中的,在C中无法使用。

这个语句声明了一个名称空间std,cout和cin是这个空间中的名称,想想看如果没有这行会发生什么?你的IDE会报错,说cout和cin是没有被声明的变量。这和C中包含头文件的用意很相似。

在C中,printf()和scanf()这两个函数可以直接使用,因为它们的定义和声明都已经在别处存放。但是我们要使用#include <stdio.h>,这个文件中包含了它们的声明。
而在C++中,你可以把变量或者类也这么做。比如,你将一个叫做SHIT的变量声明在一个叫做stshit的名称空间中,你只要使用了using namespace stshit; 就可以直接使用这一坨翔而不用声明。
而声明一个名称空间是后面的内容。

事实上根据以上的内容,你在C中能写的程序,在C++中已经可以照搬了,C++提供了全新的输入输出手段。
至于C语言中的函数部分(特别是参数传递中的形参和实参等),变量的作用域等,在C++中依然没有任何变化,但都是重要的内容。


在此给出一个实例程序供大家熟悉C++:
#include <iostream>

using namespace std;

int main()

{

    int n;

    cout << "If you give a num to n,"

         << " I will return you a sum from 1 to n(0 to quit).\n"

         << "n: ";

    while(cin >> n) {

        if(!n) break;

        int sum = 0;

        for(int i = 1; i <= n; i++)

            sum += i;

            cout << "sum: " << sum << endl

         << "Enter n again: (0 to quit) ";

    }

    return 0;

}

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程