C++中 “\n” 与 endl 的区别是什么?
“\n” 表示内容为一个回车符的字符串。std::endl 输出一个换行符,并立即刷新缓冲区。
std::cout << std::endl;相当于:std::cout << ‘\n’ << std::flush;
或者std::cout << ‘\n’; std::fflush(stdout);
由于流操作符 << 的重载,对于 ‘\n’ 和 “\n”,输出效果相同。
在 C++ 中,分别使用.h 和.cpp 来定义一个类。
.h 中存放类的声明,函数原型(放在类的声明中)。
.cpp 存放函数体。
也就是说,一个存放声明(declaration),一个存放定义(definition)。
" "和<>
<> 先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h 等用这个方法。
" " 首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于 include 自定义的头文件,让系统优先使用当前目录中定义的。
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
封装、抽象、继承、多态
C/C++可以使用带有 $ 的标识符: int $_2a$=0x99;
system(“pause”);
全局变量
::char(全局变量) =::(全局变量) *char(全局变量)
条件编译
#if 0 … #endif 属于条件编译,0 即为参数。不是ifdef
基本类型
bool、char、int、float、double、void、wcahr_t
默认是signed,可配置unsigned;
默认非long\short;可配置long\short
typedef 声明
使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:
typedef type newname;
typedef int feet;
feet distance;//int distance
枚举类型
枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
enum days{one, two, three}day;
day = one;
//
enum days{one, two, three};
days day;//或者enum days day;也行
常数
#define LENGTH 10
const type variable = value;
const int LENGTH = 10;
定义成 const 后的常量,程序对其中只能读不能修改。
const
两个概念:int a = 1;int * cp = &a;
指针变量的值(cp):是a变量的地址;
指针变量的值指向的内容(*cp):是a变量的内容=1;
const 放在 * 的左侧任意位置,限定了该指针指向的对象(*cp)是只读的;const放在 * 的右侧,限定了指针本身(cp)是只读的
cp是只读的。作用:限制通过这个cp指针来修改cp
int a = 1 ;
int const * cp = &a; //等价于 const int * cp = &a;
a = 2; //换个名字还是能修改内容的;
//cp = 2;//不能通过指针来改内容[Error] assignment of read-only location ’ cp’
cp = &b;//允许修改指针cp的值
cp是只读的。作用:cp只能指向初始的地址cp,不能改变地址cp,但是能改变*cp;
int a = 1 ;
char * const cp = &a;//const在char后面,表示(char 指针是只读的)
//cp = &b;//[Error] assignment of read-only variable ‘cp’
*cp = 1;
cp和*cp都是只读的。
int a = 1 ;
const int* const cp = &a;