C++初学疑问收集

来源:互联网 发布:国家文件数据怎么保存 编辑:程序博客网 时间:2024/06/01 13:48

1、_tmain()和main()有什么区别?

用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是<iostream.h>而是<stdafx.h>,会困惑吧?一起来看看他们有什么关系吧  首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的<stdafx.h>里,有这么两行#include <stdio.h>#include <tchar.h>我们可以在头文件<tchar.h>里找到_tmain的宏定义     #define _tmain      main所以,经过预编译以后, _tmain就变成main了,这下明白了吧

2、C++中"\n"与endl的区别是什么?

"\n"表示内容为一个回车符的字符串。std::endl是流操作子,输出的作用和输出"\n"类似,但可能略有区别。std::endl输出一个换行符,并立即刷新缓冲区。例如,std::cout << std::endl;相当于std::cout << '\n' << std::flush;,或者std::cout << '\n'; std::fflush(stdout);。由于流操作符operator<<的重载,对于'\n'和"\n",输出效果相同。对于有输出缓冲的流(例如cout、clog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。不过对于cout来说(相对于文件输出流等),缓冲一般体现得并不明显。但是必要情况下使用endl代替'\n'一般是个好习惯。对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用'\n'。----由于直接输入/输出和操作系统相关,可能需要切换内核态/用户态,需要一定的时间开销,频繁地进行操作会极大地降低输入/输出的效率,所以标准库对流的输入/输出操作使用缓冲。具体来讲,就是在内存中保存一个大小相对固定的区域(缓冲区)用来储存临时的输入或输出。当必要时,才向系统设备复制缓冲区的内容并清空缓冲区,这个过程称为刷新。

本文内容来源于:百度知道,这只是为了自己以后查阅方便才将内容收集于此。

3、"<<"用于std::cout<<"helo c++";时表示插入运算符,而有时候也可以用作位移操作符,这种同样的标识,不同的含义叫做运算符的重载。

4、要将信息存储在计算机中。必须指出信息的存储位置和所需的内存空间。如 int m;表示需要的内存大小为int 对应的内存位置用m来标识。

5、类定义数据格式和用法,而对象则是根据数据格式规范创建的实体。