- cout输出
cin是键盘输入
//i input 输入 o output输出 stream流 输入输出流头文件(类似stdio.h)
2 #include <iostream>
3
4 //std(标准) 使用标准的命名空间using namespace std;//命名空间,此标识符作为此组群的名字
5 using namespace std;
6
7 //有且只有一个主函数 可以有多个其他函数
8 int main(int argc, char *argv[])
9 {
10 //cout 输出 类似 c语言的printf
11 //endl 类似 c语言的 换行符
12 // printf("Hello 你好!\n");
13
14 //cout代表的输出设备
15 cout << "Hello 你好!" << endl;//将字符串输出到 控制台
16
17 //cin代表的是输入设备
18 int num =0;
19 cin >> num;//将建键盘输入的数据 赋值给 num
20 cout<<"num = "<<num<<endl;
21
22 return 0;
23 }
//使用标准的命名空间std,std中所有成员名 可以直接使用,cout endl cin都是命名空间std的成员
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
std::cout << "Hello World!" << std::endl;
cout << "Hello World!" << endl;
return 0;
}
作用域 ::
(表明数据归属性)
using namespace std;
2 int a = 10;//全局变量
3 void main()
4 {
5 int a = 20;//局部变量
6 cout<<"局部变量a = "<<a<<endl;//优先选择局部变量
7
8 //::作用域运算符(c++独有)
9 cout<<"全局变量a = "<<::a<<endl;//取全局变量
10 }`
命名空间 namespace 解决命名冲突;
(快速开发,方便移植)
1 //定义一个名字为A的命名空间(变量、函数)
2 namespace A {
3 int a = 100;
4 }
5 namespace B {
6 int a = 200;
7 }
8 void main()
9 {
10 //A::a a是属于A中
11 cout<<"A中a = "<<A::a<<endl;//100
12 cout<<"B中a = "<<B::a<<endl;//200
13 }
命名空间可嵌套命名空间
1 namespace A {
2 int a = 1000;
3 namespace B {
4 int a = 2000;
5 }
6 }
7 void main()
8 {
9 cout<<"A中的a = "<<A::a<<endl; //1000
10 cout<<"B中的a = "<<A::B::a<<endl; //2000
11 }
命名空间是开放的,即可以随时把新的成员加入已有的命名空间中(常用)
namespace A{
int a = 100;
}
namespace A{
int c = 200;
}
int main()
{
cout<<"a="<<A::a<<endl;
cout<<"c="<<A::c<<endl;
return 0;
}
命名空间除了可以 存放变量 还可以存放函数
1 namespace A {
2 int a=100;//变量
3
4 void func()//函数
5 {
6 cout<<"func遍历a = "<<a<<endl;
7 }
8 }
9 int main()
10 {
11 //变量的使用
12 cout<<"A中的a = "<<A::a<<endl;
13
14 //函数的使用
15 A::func();
16 }
在外定义命名空间中的函数
namespace A {
2 int a=100;//变量
3
4 void func();
5 }
6
7 void A::func()//成员函数 在外部定义的时候 记得加作用域
8 {
9 //访问命名空间的数据不用加作用域
10 cout<<"func遍历a = "<<a<<endl;
11 }
12
13 void funb()//普通函数
14 {
15 cout<<"funb遍历a = "<<A::a<<endl;
16 }
17 int main()
18 {
19 A::func();
20 funb();
21 }
无名命名空间,意味着命名空间中的标识符只能在本文件内访问,相当于给这个标识
符加上了static,使得其可以作为内部连接
1 namespace {
2 int a=100;//变量
3
4 void func()//函数
5 {
6 cout<<"holle world"<<a<<endl;
7 }
8 }
9 int main()
10 {
11 //变量的使用
12 cout<<"A中的a = "<<A::a<<endl;
13
14 //函数的使用
15 func();
16 }
给命名空间 取个别名
namespace veryLongName{
2
3 int a = 10;
4 void func(){ cout << "hello namespace" << endl; }
5
6 }
7
8 int main()
{
9 namespace shortName = veryLongName;
10 cout << "veryLongName::a : " << shortName::a << endl;
11 veryLongName::func();
12 shortName::func();
13 }
using 使用命名空间
1 namespace veryLongName {
2 int a=100;
3 void func(){cout<<"hello namespace"<<endl;}
4 }
5 int main()
6 {
8 //使用veryLongName命名空间
9 using namespace veryLongName;
10
11 //出现的变量 从veryLongName命名空间中找 找不到 从其他地方中
12 cout<<"a = "<<a<<endl;
13 func();
14 }
当局部变量和命名空间重名的时候优先选择,只会选择局部变量
1 namespace veryLongName {
2 int a=100;
3 void func(){cout<<"hello namespace"<<endl;}
4 }
5 int main()
6 {
7 int a=200;
8 //使用veryLongName命名空间
9 using namespace veryLongName;
10
11 //出现的变量 从veryLongName命名空间中找 找不到 从其他地方中
12 cout<<"a = "<<a<<endl;//访问的是局部变量中的a
13 cout<<"a = "<<veryLongName::a<<endl;//访问的是veryLongName的a
14 func();
15 }
C++,中的bool类型,和51单片机中的,bit是一样的意思
1 void test02()
2 {
3 bool mybool;
4 cout<<"sizeof(bool) = "<<sizeof(bool)<<endl;//1字节
5 mybool = false;
6 cout<<"false = "<<false<<endl;//0
7 cout<<"true = "<<true<<endl;//1
8 }