endl和'\n'的区别
在功能上,endl和'\n'的共同点是都具有换行的作用,但是'\n'的作用就仅此而已了,
endl除了换行外还有清空、刷新缓冲区的作用。
对于“刷新缓冲区”的理解:从键盘输入一段字符,不会立即显示在屏幕上,而是先存入缓冲区,再从缓冲区拿出来这样一个过程,而'\n'没有清空、刷新缓冲区的功能即意味着带有'\n'的语句可能比带endl的语句在屏幕上显示出的速度稍慢。
例:
cout << "hello~" << '\n';
cout << "hello~" << endl;
带endl的语句会显示的快一点。
当然,因为endl比'\n'多一些操作,在效率上endl是慢于'\n'的。
结构体在C和C++中的区别
首先结构体的声明在c和c++中没有区别,都是:
struct st
{
int i;
};
不同有:
1.定义结构体变量的时候有所不同,c:struct st st1;
c++:st st2;
即在c++中,变量的类型是省略了"struct"的,st1的类型是“struct st”,st2的类型是“st”。
2.c++中可以直接在结构体中定义函数,而c只能接受成员是函数指针。
C:
struct st
{
int i;
void(*p)();
};
C++:
struct st
{
int i;
void fun()
{
cout << "hello~\n";
}
};
3.在c++中,结构体指的是一个“类”。