【回想起来,从当年在电脑培训班第一次接触C语言至今已经过去了10个年头,期间经历了高考、大学时期的迷茫,导致了学习编程的最黄金时间被耽误了,以至于时至今日,虽然已软件开发工程师的身份混一口饭吃,但是始终感觉自己的底子太薄,难登大雅之堂。最终下定决心,从头开始重新复习,熟悉的内容一笔带过,不熟悉的内容着重查缺补漏,以求让自己在以后的工作中更少地犯一些低级错误就够了。】
1、你们是猴子请来的救兵么?
所谓C语言,是由美国贝尔实验室的Dennis·Ritchie在1972年提出,并在随后迅速传播至IT界的各个领域,已经成为了全世界程序员的“世界语”,还派生出了两种更加强大、影响更为深远的编程语言:C++和Java。因此,说C语言是当代编程语言的根基是一点都不为过的。C语言的语法其实相当的简单,归根结底只有宏、指针、结构体、数组和函数几部分组成,无论多么复杂的功能都是由它们的组合完成。
C++与C的区别其实是非常非常大的。C++相对于C最显著的特点就是其面向对象的特性,但是由于二者的语法结构几乎一致,而且常用的C++编译器几乎全部无条件支持C语言,因此很多初学者(包括当年的我自己)都会对其感到极为的困惑,以至于用“C++”编写的程序中还杂糅这大量的C语言成分。在C++中,类是所有语法的核心,在其基础上,具备了公有/私有/保护型成员、函数重载、构造/析构函数、内联函数、引用、友元、模板、异常、命名空间等特性。怎一个头大了得……
2、代码文件
其实二者的区别不大,C语言的源文件后缀名是.c,而C++的源文件后缀名是.cpp,二者的头文件一般都是.h,据说有些系统中C++的头文件后缀可能是.hpp?反正我从来没遇见过……恕某孤陋寡闻。
3、控制台输入输出
C语言一般都会使用标准输入输出函数printf和scanf,要求include “stdio.h”;C++中一般常用流输入输出,cin和cout,包含头文件include <iostream.h>。其实深究起来,流操作还有很多很复杂的东西,以后再讨论。
4、动态分配内存
C语言和C++都支持在堆内存区域手动分配内存空间。对于C来说,使用的是内存分配函数malloc和calloc,释放分配的内存则需要free函数;对于C++,分配内存使用new操作符,释放内存使用delete操作符。也可以因此分配或者删除多个内存单元:
int *p, *p10, *pArr; p = new int; p10 = new int(20); pArr = new int [10];//分配10个int长度的内存单元 delete p; delete p10; delete [10] pArr;5、引用数据类型
引用数据类型通常在定义引用时在变量前面加上&,同时必须制定它要引用的值;
int a; int &b = a;这样a和b就代表着同一个变量,改变其中一个同时也会改变另一个。引用数据类型常常用在函数的参数中,对需要改变的输出参数常常声明成引用类型,方便在函数内部修改。
6、const类型
const所修饰的类型为常类型,必须在定义的时候指定内容,而且未来不允许修改;
(1)一般常量:
在定义一般数据类型时,在前面加上const就可以定义某种类型的常量,如:
const int n = 20; char cArr[n];//C++编译器允许,C编译器会报错;(2)常指针和常引用:
需要注意,常指针和指向常量的指针绝不是同一个概念,很多公司笔试的时候会着重考察这一点。具体什么区别,查书去吧,O(∩_∩)O哈哈~。
(3)常成员函数:
在C++中可以定义常常成员函数。只有常成员函数才能操作常量或常对象。