C++语法和C不同之处
作者:互联网
在考计算机的研究生考试中,经常需要学习C和C++这两门语言,大多数的人在大学期间已经学习了C语言,而C++跟C的基础语言又十分相似,我也是在学习的过程中找到了这些不同之处,希望对你有所帮助。
一、应用场合
C语言:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性。
C++:正是因为有大规模的程序需要去处理,C++就应运而生了。C++是由C发展而来的,与C语言兼容。C++既可用于面向过程的结构化程序设计,也可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
二、语法的不同之处
1、头文件
C语言:
#include<stdio.h> //标准输入、输出
*C语言中所有的头文件都带后缀 .h
C++:
#include<iostream> //输入输出流所包含的头文件
using namespace std; //C++标准库中的类和函数是在命名空间std中声明的
*C++标准库中的类和函数是在命名空间std中声明的,C++中有系统提供的头文件不带后缀 .h,用户自己编制的头文件可以有后缀 .h。
2、输入/输出函数
C语言:用一个例子说明一下:
int a;
double b;
scanf("%d",&a);//输入a的值
scanf("%lf",&b);//输入b的值
printf("a=%d\n",a); //输出a的值
printf("b=%6.2f\n",b); //输出b的值
%d和%f称为格式说明符,表示以此格式输出对应表达式的值,\n表示换行。%6.2f 中的6表示占六列,.2 表示输出对应浮点表达式值时只输出三位小数。
C++:也是用一个例子说明:
int a=5;
float b;
cin >>b; //给变量b赋值
cout << "a="<<a<<endl; //输出a的值
cout << "b="<<b<<endl; //输出b的值
cout必须要和”<<“一起使用,用于输出变量的值,cin必须要和”>>“一起使用,用于给变量赋值。我觉得C++中的输入输出流是很强大的,它不像C里面还要指定格式。endl表示换行。
3、字符串
另外一个我觉得C++里面另外一个特别好用的用来存放字符串的就是string,它是在C++标准库中声明的一个字符串类。
C语言:
char a[20]="changsha";
char *p="changsha";
可以用上面两种方式 ,一种是用数组的方式存储字符串,另外一种是用字符串指针。这两种方法都有一个麻烦的地方就是,字符串的连接、比较啊等等都需要调用函数执行,比如strcmp函数、strcat函数、strcpy函数。
strlen:求字符串长度
strcmp:字符串比较
strcat:字符串连接
strcpy:字符串复制
C++:
string s1="abcd";
string s2="hello world";
string s3=s1+s2; //字符串连接
s1=s2; //字符串拷贝
if(s1==s2){
cout<<"字符串相等"<<endl;
}
if(s1!=s2){
cout<<"字符串不相等"<<endl;
}
由此看来是不是方便了许多?
4、结构体和类
C语言:结构体
struct Student { //声明了一个名为Student的结构体类型
int num;
char name[20];
char sex;
} ;
Student stud1,stud2; //定义了两个结构体变量
C++:类
class Student{
private:
int num;
char name[20];
char sex;
public:
void display() {
cout<<"num="<<num<<endl;
cout<<"name="<<name<<endl;
cout<<"sex="<<sex<<endl;
}
};
Student stud1,stud2;//定义了两个Student类的对象
C++中保留了结构体,并且C++对struct进行了进一步的扩展,使struct在C++中可以和class一样当做类使用,而唯一和class不同的地方在于struct的成员默认访问修饰符是public,而class默认的是private。
5、C++数据类型
在C++中多了一种布尔型(bool)变量
6、引用类型
在C++很重要的一点就是增加了引用类型,主要用于扩充函数传递数据功能
1.指针有自己的一块空间,而引用只是一个别名;
2.使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小;
3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象
的引用;
4.作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引
用的修改都会改变引用所指向的对象;
5.可以有const指针,但是没有const引用;
6.指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能
被改变;
7.指针可以有多级指针(**p),而引用至于一级;
8.指针和引用使用++运算符的意义不一样;
还有很多细微的不同,这里只是列举了主要的,也没有涉及到面向对象的知识
标签:char,C++,C语言,语法,引用,字符串,不同之处,指针 来源: https://blog.csdn.net/qq_42535394/article/details/104907513