‘壹’ c语言和c++有什么关系
如果你是刚开始学习一门语言,相信下面几条对你会有帮助!
1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个 "不再 ")有C++语法是C语法的超集的说法。
2. C++/CLI 和 C# 是微软的,它们与C和C++没有任何关系,虽然部分语法相似。但哪两种语言不相似呢?都是abc这26个字母。
3. 不要使用TC/TC++/BC/CB等古老的编译器来学习C/C++,因为它们太古老了,不支持新的C/C++标准。不要使用CBX/VC++6.0/VC2005等对C/C++标准支持不好的编译器,虽然这些编译器适合工作,但不适合学习,因为它们中的语法陷阱很多。记住唯一适合学习的编译器是gcc/mingw。[antigloss注:Dev-C++ 使用的编译器就是gcc & g++]
4. 不要用 " "代替 <> 来包含系统头文件,虽然有些编译器允许你这样做,但它不符合C/C++标准。
错误的示例:#include "stdio.h ",#include "iostream "。[antigloss注: <> 用于包含标准头文件和系统头文件, " " 用于包含自定义头文件。标准似乎没有明确规定不准用 " " 包含标准头文件和系统头文件。使用 " " 包含标准头文件或者系统头文件只能说是一种不良风格。]
5. 不要将main函数的返回类型定义为void,虽然有些编译器允许你这样做,但它不符合C/C++标准。不要将函数的int返回类型省略不写,在C++中要求编译器至少给一个警告。错误的示例:void main() {},main() {} [antigloss注:C99和C++98都要求编译器对省略int至少发出一个警告]
6. 不要把VC++中的 #include "stdafx.h " 贴出来,它是预编译头文件。如同上菜时不要把厨师也放到托盘中。
7. [C++]不要#include <iostream.h> ,不要#include <string.h> ,因为它们已经被C++标准明确的废弃了,请改为 #include <iostream> 和 #include <cstring> 。规则就是:
a. 如果这个头文件是旧C++特有的,那么去掉.h后缀,并放入std名字空间,
比如 iostream.h 变为 iostream。
b. 如果这个头文件是C也有的,那么去掉.h后缀,增加一个c前缀,比如 string.h
变为 cstring;stdio.h 变为 cstdio, 等等。
BTW:不要把string、cstring、string.h三个头文件搞混淆
BTW:windows.h不是C/C++的标准文件,因此它的命名C/C++不管。
8. 不要再写 char* p = "XXX " 这种语句,要写成 const char* p = "XXX ",编译器之所以让前者通过编译是为了兼容以前的大量的旧代码。
BTW:const TYPE* p 和 TYPE const* p 是一样的,风格不同而已。
BTW:C语言中也有const关键字。
9. 不要在同一条语句中包含一个变量的多个++/--,因为它们的解析在C/C++标准中没有规定,完全取决于编译器的个人行为。
10. C/C++ 是平台无关性语言,因此系统相关的 process/GUI 等不在标准 C/C++ 库中。比如 graphics.h 和 windows.h 等是由某个编译器提供的,而不是由C/C++ 提供的。
11. C/C++只是语言,而且是平台无关性语言。论坛上有部分人甚至认为C就是dos,C++就是windows,那么请问linux是什么?
12.[C++]面向对象曾经是设计C with class(C++的前身)的主要目的,但C++不是,C++是一个多典范语言。主要支持过程调用、基于对象、面向对象、泛式编程这四种编程典范。当然还支持functional, generative,metaprogramming等典范。
13. 语法学家不是文学家,所以当你学会了一门计算机语言时,你还需要学习数据机构和算法,还需要掌握工具和平台API的用法。
14. C/C++ 是通用语言,因此语法很复杂,你应当裁减成适合你自己的语法集合,比如裁减成 better C 和 ADT。
15. C/C++是通用语言,因此只含通用的库,你应该丰富自己需要的库,比如汽车工业协会有自己的C/C++函数/类/模板库。
‘贰’ c语言和c++语言有什么关系
c语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,但是随着计算机性能的飞速提高,硬件配置与几十年前已有天壤之别,软件规模也不断增大,很多软件的体积都超过1G,例如PhotoShop、Visual
Studio等,用c语言开发这些软件就显得非常吃力了,这时候c++就应运而生了。
c语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点;c++是c语言的继承,它既可以进行c语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
c++语言是在c语言的基础上开发的一种通用编程语言,应用广泛。c++支持多种编程范式:面向对象编程、泛型编程和过程化编程。最新正式标准c++14于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大受用的最强大编程语言之一,支持类:类、封装、重载等。c++主要用于大型的应用程序开发,比如游戏开发。
c++主要在c语言的基础上增加了面向对象和泛型的机制,提高了开发效率,以适用于大中型软件的编写。
‘叁’ 什么是C语言和C+语言
1、C语言。
C语言诞生得非常早,当时人们普遍还习惯用汇编语言编写软件,并且没有什么统一,通用的操作系统,基本上软件都是从0开始写的。C语言的方针便是比汇编方便易用,一起不要损失汇编的表达能力。所以C语言可以看成是“高级的汇编”语言。
C语言的源代码基本上可以非常容易地对应到汇编代码,并且可以不需要什么运行时环境的支撑。C的特点,简单容易编译,灵活贴近底层。所以一向到现在,一些需要直接和硬件打交道的软件都还是用C语言写的,比如(但不限于)Linux Kernel和一些嵌入式领域。
2、C++ 语言
C++早期是基于C的,C++早期的编译方法是将C++的代码编译成C代码然后再调用C的编译器来生成机器码。C++的方针是进步编程人员的生产率,哪怕代价是增加编译器的复杂度。
(3)编程范式对c语言扩展阅读
1、C语言中,如果一个函数没有指定返回值类型,默认为int类型,并返回一个随机数,一般为0XCCCCCCCC.
2、在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过。
‘肆’ c语言和c++和c#的区别
一、两者的区别
1、特点方面的不同:
C语言既具有高级语言的特点,又具有汇编语言的特点。C++它是一种使用非常广泛的计算机编程语言。C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
2、主要开发用途不同:
C面向过程,开发非托管程序,编译成exe是二进制可执行文件,不可跨平台。C++面向对象,开发托管和非托管程序,编译成exe是二进制可执行文件,不可跨平台。C#面向对象,开发托管程序,编译成exe是中间语言,可跨平台。
3、编程难度不同:
C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点,简单容易编译,灵活贴近底层。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C#的特点就是:抽象层次高且基本只有一种(面向对象的),运行时支持丰富(垃圾回收等),类库丰富。
二、c语言编程软件在windows下首选VS,版本至少vs2005以上,或者用最新的VSCode,不过需要自己配插件,好处是免费,如果做单片机c开发首选eclipse,linux下如果做单片机首选eclipse,其次是clion。eclipse兼容性最好,不过稳定性差一些,vs在win下没有对手,clion用cmake,相比来说大部分c程序用的都是makefile,需要适应一下。
三、visual stadio 2010用C语言编程是不行的