C++与C语言常用的语法对比
概述
C++作为C语言的扩展,在语法上继承了C语言的大多数特性,但也加入了许多新的特性和语法糖。本文将比较C++与C语言在常用语法方面的异同。
数据类型
C++和C语言公用的数据类型类型有char、int、float、double、void等,在使用上无差别。
C++还新增了一些数据类型:
- bool类型:代表布尔值,只有两个取值true和false。可以进行逻辑运算等操作。
c++
bool flag = true;
if (flag){
std::cout << "This is true" << std::endl;
}
- long long类型:与long类型相似,但是更加长,可以存储更大的数值。
c++
long long a = 12345678910111213;
std::cout << a << std::endl;
函数定义
C语言函数的定义方式:
// 返回类型 函数名(参数列表)
int add(int a, int b){
return a + b;
}
C++函数的定义方式:
// 返回类型 函数名(参数列表)
int add(int a, int b){
return a + b;
}
C++函数还有一些扩展的语法:
- 默认参数:可以为函数的参数设置默认值,在调用函数时未给定对应参数的值,将使用其默认值。
```c++
int add(int a, int b = 0){
return a + b;
}
std::cout << add(1) << std::endl; // 输出1
std::cout << add(1, 2) << std::endl; // 输出3
```
- 函数重载:可以定义多个同名函数,但是参数个数或者参数类型必须不同,这样在调用时可以根据传递的参数类型或参数个数,选择正确的函数执行。
```c++
int add(int a, int b){
return a + b;
}
double add(double a, double b){
return a + b;
}
std::cout << add(1, 2) << std::endl; // 输出3
std::cout << add(1.1, 2.2) << std::endl; // 输出3.3
```
字符串
C语言中没有原生的字符串类型,通常使用字符数组来表示,但是在C++中,有一种内置的字符串类型string,使得字符串的操作更加便捷而且灵活。
#include <string>
#include <iostream>
int main(){
std::string name = "John";
std::cout << "My name is " << name << std::endl;
return 0;
}
结构体和类
C语言中结构体并无法定义方法,只能够拥有属性,而在C++中,结构体可以用class来定义,可以拥有自己的方法。
#include <iostream>
class person{
public:
person(std::string name, int age){
this->name = name;
this->age = age;
}
void sayHello(){
std::cout << "Hello, my name is " << name << ", I'm " << age << " years old." << std::endl;
}
private:
std::string name;
int age;
};
int main(){
person John("John", 20);
John.sayHello();
return 0;
}
总结
C++和C语言的语法有很多相似的地方,同时也有一些不同。C++适合用于编写大型的、面向对象的程序,而C语言适合具有底层硬件操作的程序。在实际使用时,应根据实际情况选择C++或者C语言。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++与C语言常用的语法对比 - Python技术站