C 语言和 C++ 有什么区别

1. C语言和C++语言的基础

C语言和C++语言都是面向过程的程序设计语言,隶属于结构化程序设计语言。它们的基础都是相同的,包括变量、数据类型、运算符、表达式、控制语句、函数等。

1.1 变量

变量是计算机内存中的一块区域,用于存储数据和临时结果。在C语言和C++语言中,变量的定义和使用都是基本相同的。例如:

int a; //定义变量a,数据类型为int

a = 10; //将10赋值给变量a

1.2 数据类型

数据类型是指变量所能存储的数据种类。在C语言和C++语言中,数据类型也是基本相同的,包括整型、浮点型、字符型、指针型等。例如:

int i;         //定义整型变量i

float f; //定义浮点型变量f

char c; //定义字符型变量c

int *p; //定义指针变量p,用于存储int类型变量的地址

1.3 运算符和表达式

运算符是用于执行特定操作的符号,表达式是由一或多个运算符和操作数组成的序列。在C语言和C++语言中,运算符和表达式也是基本相同的,包括算术运算符、关系运算符、逻辑运算符等。例如:

int x = 3, y = 5;

int result = x + y; //算术运算符+

if(x > y) //关系运算符>

{

printf("x > y\n");

}

if(x && y) //逻辑运算符&&

{

printf("x && y is true\n");

}

1.4 控制语句

控制语句是程序中用来控制程序流程的语句。在C语言和C++语言中,控制语句也是基本相同的,包括if语句、while语句、for语句等。例如:

int i = 1;

while(i <= 10) //while语句

{

printf("%d ", i);

i++;

}

for(int j = 1; j <= 10; j++) //for语句

{

printf("%d ", j);

}

if(i > 10) //if语句

{

printf("i > 10\n");

}

else if(i == 10)

{

printf("i = 10\n");

}

else

{

printf("i < 10\n");

}

1.5 函数

函数是一段可执行的代码,具有特定功能。在C语言和C++语言中,函数的定义和使用也是基本相同的。例如:

int add(int x, int y)   //函数add,功能为两数相加

{

return x + y;

}

int main()

{

int result = add(3, 4); //调用函数add

printf("3 + 4 = %d\n", result);

return 0;

}

2. C语言和C++语言的区别

2.1 对象的概念

C++语言是面向对象的程序设计语言,而C语言不是。面向对象编程是一种基于对象的概念,通过封装、继承、多态等技术实现程序的模块化和可重用性。在C++语言中,对象是类的实例,可以通过定义对象来调用类的函数。例如:

class Student

{

public:

void say() //类的成员函数

{

std::cout << "I am a student" << std::endl;

}

};

int main()

{

Student s; //定义对象s

s.say(); //调用类的成员函数say

return 0;

}

2.2 类的声明和定义

在C语言中,函数的声明和定义是分开的,而在C++语言中,类的声明和定义可以同时进行。在C++语言中,类的定义包括成员变量和成员函数,也可以包括构造函数和析构函数。例如:

//类的声明

class Student

{

public:

void say(); //成员函数的声明

private:

int age; //成员变量

};

//类的定义

void Student::say() //成员函数的定义

{

std::cout << "I am " << age << " years old" << std::endl;

}

int main()

{

Student s;

s.say(); //调用成员函数say

return 0;

}

2.3 名字空间

名字空间是C++语言中用来管理名称的机制。在C++语言中,一个名字空间可以包含常量、变量、函数、类等声明和定义,可以避免命名冲突。例如:

namespace A

{

int a = 1; //常量a

void say() //函数say

{

std::cout << "I am A" << std::endl;

}

};

namespace B

{

int a = 2; //常量a

void say() //函数say

{

std::cout << "I am B" << std::endl;

}

};

int main()

{

std::cout << A::a << std::endl; //输出常量a

std::cout << B::a << std::endl;

A::say(); //调用函数say

B::say();

return 0;

}

2.4 异常处理

异常处理是C++语言中用来处理程序运行过程中出现异常情况的方法。在C++语言中,可以通过try-catch语句来捕获和处理异常。例如:

void divide(int a, int b)

{

if(b == 0)

{

throw "Divide by zero"; //抛出异常

}

std::cout << "result = " << a / b << std::endl;

}

int main()

{

try //捕获异常

{

divide(3, 0);

}

catch(const char* msg) //处理异常

{

std::cerr << msg << std::endl;

}

return 0;

}

2.5 标准库的不同

C++语言和C语言的标准库也是不同的,C++标准库包括输入输出流、容器、算法等。在C++语言中,可以通过标准模板库(STL)来使用容器和算法。例如:

#include 

#include

#include

int main()

{

std::vector v; //定义向量v

v.push_back(3);

v.push_back(1);

v.push_back(4);

v.push_back(2);

std::sort(v.begin(), v.end()); //排序

for(int i = 0; i < v.size(); i++)

{

std::cout << v[i] << " ";

}

std::cout << std::endl;

return 0;

}

总结

综上所述,C语言和C++语言有许多相同的基础,例如变量、数据类型、运算符、表达式、控制语句、函数等。但是它们之间也有许多的不同,主要包括面向对象的思想、类的声明和定义、名字空间、异常处理和标准库的不同等。学习C++语言需要先掌握C语言的基础,然后再学习面向对象思想和C++语言的高级特性。

后端开发标签