学习c语言和c++,应该先学哪个?两者是什么样的关系

Python015

学习c语言和c++,应该先学哪个?两者是什么样的关系,第1张

c是c++的前身,因为这两种语言有许多共同的语法和功能。以前,c可以说是c++语言的一个子集,因为c++刚出生时,他只是对于c语言的一个扩充,人们还是在普遍意义上讲它归类于c。

但是在c++的发展过程中,进行了许多扩展和改进,使其与c的差别越来越大,成为一种独立于c的全新语言,而且比c更强大、用途更广。

c

语言与

c++

的区别有很多:

1,全新的程序程序思维,c

语言是面向过程的,而

c++

是面向对象的。

2,c

语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而

c++

对于大多数的函数都是有集成的很紧密,特别是

c

语言中没有的

c++

中的

api

是对

window

系统的大多数

api

有机的组合,是一个集体。但你也可能单独调用

api。

3,特别是

c++

中的图形处理,它和语言的图形有很大的区别。c

语言中的图形处理函数基本上是不能用在中

c++

中的。c

语言标准中不包括图形处理。

4,c

c++

中都有结构的概念,但是在

c

语言中结构只有成员变量,而没成员方法,而在

c++

中结构中,它可以有自己的成员变量和成员函数。但是在

c

语言中结构的成员是公共的,什么想访问它的都可以访问;而在

vc++

中它没有加限定符的为私有的。

4,c

语言可以写很多方面的程序,但是

c++

可以写得更多更好,c++

可以写基于dosr程序,写

dll,写控件,写系统。

5,c

语言对程序的文件的组织是松散的,几乎是全要程序处理;而

c++

对文件的组织是以工程,各文件分类明确。

6,c++

中的

ide

很智能,和

vb

一样,有的功能可能比vb还强。

7,c++

对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入

mfc

中的类的时候,加入变量的时候等等。

8,c++

中的附加工具也有很多,可以进行系统的分析,可以查看

api;可以查看控件。

9,调试功能强大,并且方法多样。

先学好了c语言,再慢慢接触c++,语言是相通的,你一定能在code中找到自我的,加油!

如果你是刚开始学习一门语言,相信下面几条对你会有帮助!

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,不要#include,因为它们已经被C++标准明确的废弃了,请改为 #include 和 #include。规则就是:

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++的区别有很多:

1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。

2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。

3,特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。

4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。

4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。

5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。

6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。

7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。

8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。

9,调试功能强大,并且方法多样

*C语言是面向过程的,而C++是面向对象的*