1.C和C++的区别:

  • C语言可以在C++编译器上完美运行,即C属于C++
  • C++比C多出来一些函数库
  • C++是面向对象编程(即有class以及相关工具)

2.如何从C过渡到C++

2.1 代码实例:(C语言版)uva11000.

#include<stdio.h>
int main()
{long long m = 0, fm = 1, sum = 1;int n,i;while(scanf("%d",&n),n != -1){m = 0, fm = 1, sum = 1;for(i = 0;i < n;i++){fm = m + 1;m = sum;sum = m + fm;}printf("%lld %lld\n",m,sum);}return 0;
}

重点不在于解上面这题,请将重点放在写法。以上是C语言写法,为什么说是C语言写法呢?因为上述代码有几个C独有的特点:

  • 第1行:#include<stdio.h>
  • 第5行:scanf("%d",&n)
  • 第13行:printf("%lld %lld\n",m,sum);

这三点也是C和C++最基本的区别,下面看C++版本:

#include<iostream>
using namespace std;
int main()
{long long m = 0, fm = 1, sum = 1;int n,i;while(cin >> n,n != -1){m = 0, fm = 1, sum = 1;for(i = 0;i < n;i++){fm = m + 1;m = sum;sum = m + fm;}cout << m << " " << sum << endl;}return 0;
}
  • 第1行:#include<iostream>
  • 第2行:using namespace std;
  • 第6行:cin >> n;
  • 第14行:cout << m << " " << sum << endl;
  1. 其中第1行头文件iostream,和C语言中的stdio.h类似,可以对比理解。
  2. 第2行的using namespace std 的意思是声明使用命名空间std。可以不深入理解,只要写C++就敲这一行就可以了。(想了解的直接百度就可以,很简单)
  3. 第6行:cin全名叫 标准输入流。和C语言中的scanf用法类似,只是它用起来更为方便(大多数情况下),不需要区分不同的类型用不同的写法,所有类型只需要用cin >> (变量名)就可以了。
  4. 第14行:和cin类似,cout是标准输出流,与C中的printf类似,但是它也不用区分不同的类型用不同输出符号,不管什么类型只要用cout << (变量名) 就可以了。其中endl相当于C语言中的 ‘\n’ 换行符。

2.2 初步掌握C++:

如果你已经明白上面4个C++的特点的话,那现在你用C编写代码有多顺畅你用C++就可以同样顺畅了。因为其他写法(for、if、else……)和C完全相同。

3.如何利用C++的优点(提高):

一开始就提到,C++和C的不同在于C++丰富的函数库,其中最方便的是STL(一个库名)。很多书会讲这一个库单独拿出来讲,其中包括一些非常方便的容器(vector、map),现在看不懂也没关系,这个是需要花时间学的。从C过渡到C++只需要一个下午(C基础好),但是学会使用C++的各种函数,需要花很久。

4.推荐书籍:

个人入门用的是《C++ primer plus》第六版。这本书很厚,但是不需要看完,就像用字典一样看它就可以(用来看各种函数定义)。然后是提高,建议买一本专门讲STl的书来深入掌握STL,因为它真的很重要。

转载于:https://www.cnblogs.com/long98/p/10352237.html

如何从C快速过渡到C++相关推荐

  1. 从C语言快速过渡到C++

    1. C++概述 1.1 C++简介 "C++"中的++来自于C语言中的递增运算符++,该运算符将变量加1.C++起初也叫"c with clsss".通过名称 ...

  2. vue图片动画上下跳动_Vue 解决路由过渡动画抖动问题(实例详解)

    前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发 ...

  3. 未来的设计:我们正在进入“计算设计”时代

    来源:资本实验室 摘要:随着各种新技术的引入,设计行业正在经历一场新的变革. 聚焦前沿科技创新与传统产业升级 根据施耐德电气最近的一份研究,新技术正在推动设计行业进入"计算设计"时 ...

  4. jquery.cycle.js

    jquery.cycle.js简单用法实例 样式: a{text-decoration: none;} *{margin:0; padding:0;} /*容器设置*/ .player { width ...

  5. 泰语7个元音变形_大概是最全的音标总结--元音部分

    [音标,收藏这篇就够了,码字不易,记得要先点赞哦-] 由于文章太长,且附有很多图片,怕大家不好加载,所以把元音和辅音分开放了 很多人在问怎么练口语,怎么说得地道,于是就去看美剧,去英语角练习,去和外教 ...

  6. OpenCV2:图像滤波基础

    http://www.myexception.cn/image/1853919.html 一:基本概念 滤波是数字图像处理中的一个基本操作,在信号处理领域可以说无处不在.图像滤波,即在尽量保留图像细节 ...

  7. 华为数据之道_华为构筑产业数字化的太极之道

    产业数字化正在今天经历快速变化. 自华为企业BG发布数字平台之后的7个月里,产业智能已经达成了广泛的行业共识.驱动传统经济向数字经济快速过渡被提升为国家战略,大量技术.人才.资金涌入产业数字化浪潮当中 ...

  8. 智能搜索推荐一体化营收增长解决方案

    简介:图数据库GDB提供智能搜索推荐一站式服务,基于达摩院的智能搜索推荐算法和知识图谱技术,助力企业快速过渡冷启动过程,面向业务场景定制化方案,以提升核心业务指标,实现业务营收增长. 方案架构 方案特 ...

  9. angular示例_用示例解释Angular动画

    angular示例 为什么要使用动画? (Why use Animations?) Modern web components frequently use animations. Cascading ...

  10. Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity

    原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/pausing.html 在APP的正常使用过程中,在前台工 ...

最新文章

  1. 终于有人讲透了芯片是什么(电子行业人士必读)
  2. oracle数据库空间估算
  3. 什么是Google Play保护以及如何确保Android安全?
  4. R中6种读入表格数据的方式哪个最快?结果出人意料!
  5. magento左栏添加筛选Filtering options on Left-Navigation Menu in Products List Page
  6. 标榜 AI 的百度又玩区块链,跟风布局“加密猫”?
  7. [软件]提高日常操作电脑的效率
  8. 2.2 Mnist手写数据集
  9. Java从零开始学三十六(JAVA IO- 字符流)
  10. ibm澳州业务_通过集体学习使业务用户能够使用IBM Blueworks Live和IBM Industry Models进行业务建模
  11. python3调用企业微信api
  12. R语言基于ggplot绘制多条ROC曲线
  13. 分布式任务调度组件 Uncode-Schedule
  14. Deepin 深度技术 Windows XP SP2 珍藏版
  15. oracle EM 监控邮件提醒
  16. 字节跳动全链路压测(Rhino)的实践
  17. 分享一个简单的迭代学习机器人双臂控制(MATLAB)
  18. java long 0_Java中的long类型和Long类型比较大小
  19. 如何理解dubbox
  20. 微信Android客户端的卡顿监控方案

热门文章

  1. Deklarit3.0的确不错,推荐一下。
  2. 小程序开发组件的使用
  3. SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper
  4. python文件操作完成_基于python的文件操作
  5. 消防荷载楼板按弹性还是塑性计算_技术周刊 | 关于荷载输入若干问题的解答
  6. 解决嵌套块级元素垂直外边距的塌陷
  7. 阿里云云市场:全国快递物流查询-快递查询接口
  8. Shell 把日志记录按天切割到不同的文件
  9. Matlab系列教程_数值计算_求和(积)_求累加(积)
  10. 因为M.2 SSD,不得不装了WINDOWS10