1.C++基本数据类型:
整型int 字符型 char 浮点型 float double
逻辑性 bool 无类型 void 也称内置类型(语言内部 已定义好的类型)
非基本数据类型:
数组 type[] 指针 type* 结构体 struct
联合体 union 枚举 enum 类 class (这些即就是自定义类型)
2.标准输入输出流对象:
cout 标准输出流对象 << 输出操作符
cin 标准输入流对象 >> 输入操作符
3.endl 换行操作符
4.名字空间域 :
名字空间域 可以解决全局命名冲突的问题,用花括号把文件的一部分括起来,并用namespace开头给它起个名字,例如:
#include <iostream>
using namespace std;
namespace name1
{
int i = 0;
}
using namespace name1;
int main()
{
//cout << name1::i<<" "<< endl; // :: 作用域解析符
cout << i << " " << endl; //如果加上使用名字空间域中的变量using namespace name1; 就可以直接访问名字空间域中的变量,与上句效果等价
system("pause");
return 0;
}
5.缺省参数,半缺省参数
缺省参数 只要出现默认参数,那之后的参数也要带默认值,下面举个例子:
#include <iostream>
using namespace std;
int Add1(int x=1, int y=2)
{
return x + y;
}
//半缺省参数
int Add2(int i, int j = 0)
{
return i + j;
}
void test()
{
Add1();
cout << Add1() << " " << endl;
Add1(2);
cout << Add1(2) << " " << endl;
Add1(1, 2);
cout << Add1(1,2) << " " << endl;
Add2(3);
cout << Add2(3) << " " << endl;
Add2(1, 2);
cout << Add2(1,2) << " " << endl;
}
int main()
{
test();
system("pause");
return 0;
}
6.引用:
给已定义的变量起一个新的名字 引用必须初始化,一个变量可取多个别名,引用只能在初始化时引用一次,不能改变为引用其他变量。
#include <iostream>
using namespace std;
void test1()
{
int a = 1;
int &b = a;
cout << "a:address " << &a << endl;
cout << "b:address " << &b << endl;
a = 2;
b = 3;
int &c = b; //引用一个引用变量,别名的别名
b = 4;
}
void test2()
{
int a = 4;
const int &b = a;
a = 5; //a改变,b也会改变
//b = 7; //不能给常量赋值
const int c = 1;
const int &d = c;
//int &e = c; //不可以这样用const int和int &不能这样赋值,类型不同
const int &f = 8; //常量具有常性,只有常引用可以引用常量
double g = 9.9;
//int &g1 = g; //无法用double类型的g初始化int &g1,g1引用的是带有常性的临时变量,不能赋值
const int &h = g;
}
int main()
{
test1();
test2();
system("pause");
return 0;
}
运行结果如下图:
7. 引用传递:如果形参为引用类型,形参是实参的别名。
#include <iostream>
using namespace std;
void mySwap(int &left,int &right)
{
int tmp = left;
left = right;
right = tmp;
}
void Myswap(int* left, int* right)
{
int tmp = *left;
*left = *right;
*right = tmp;
}
int main()
{
int a = 10;
int b = 33;
mySwap(a, b);
cout << a << " " << b << " " << endl;
Myswap(&a, &b);
cout << a << " " << b << " " << endl;
system("pause");
return 0;
}
运行结果如下图:
8.引用和指针的区别和联系:
1.引用只能在定义时初始化一次,之后不能改变指向其他变量;指针变量的指向可以改变。
2.引用必须指向有效变量,指针可以为空。
3.sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向变量的大小,而sizeof指针是对象地址的大小。
4.指针,引用自加和自减意义不一样。
5.相对而言,引用比指针更安全。
指针比引用更灵活但也更危险。使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置0,否则可能存在野指针问题。