doublec(3.5);
cout <
//通过等号赋值
char *pStr = "1234";
cout << *pStr << " " <
//通过括号赋值
char *str("china");
cout << *str << " " <
//宽字符,汉子,棒子文
wchar_t *str2(L"china");
wcout << *str2 << " " <
system("pause");
}

#include
voidmain()
{
//输出符 <<
//std命名空间
//::域控制符
std::cout << "hello world";
system("pause");
}
7.一个文件中使用另外一个文件中声明的变量的时候,C++要求显示的加上extern关键字调用这个全局变量。
8.调用命名空间中的变量已经命名空间中的函数
A:有名命名空间
#include"iostream"
#include"stdlib.h"
namespacemyspace
{
inta(15);
voidprint()
{
std::cout << "锄禾日当午" << std::endl;
}
}
namespacemyspaceA
{
inta(25);
voidprint()
{
std::cout << "AAAAAAAAAAAA" <
}
}
voidmain()
{
inta(5);
//如果想不被上面的a变量影响,而直接访问命名空间
//中的变量,这里要加上命名空间名
std::cout << "myspace a = " <
//调用myspaceA中定义的变量a
std::cout << "myspaceA a = " <
std::cout << std::endl;
//调用命名空间中的函数
myspace::print();
myspaceA::print();
system("pause");
}
运行结果如下:

B:无名命名空间
#include"iostream"
//没有命名的命名空间中的参数可以直接调用
namespace
{
inta(3);
voidprint()
{
std::cout << "gogogo";
}
}
voidmain()
{
//说明没有命名的命名空间可以直接调用a
std::cout << a <
print();
getchar();
}
输出结果是:
3
gogogo
C:命名空间中所有的数据,函数,类,对象都是共有的,结构体内部的默认是共有的。
案例如下:
#include
//namespace所有数据,函数,类,对象都是共有
namespacerunmove
{
inty(5);
int(*padd)(int,int);//函数指针接口
inty1(5);
classmyclass
{
//类中的变量等默认是私有的
public:
inta;
};
}
//对应上面的函数指针
intadd(inta,intb)
{
returna +b;
}
intaddp(inta,intb)
{
std::cout << a <<" " <
returna +b;
}
//结构体默认是透明的(public的)
structMyStruct
{
intb;
private:
inta;//是私有
};
voidmain()
{
//namespace所有数据,函数,类,对象都是共有
MyStructstruct1;//结构体内部默认公有
struct1.b = 20;
std::cout << struct1.b << std::endl;
std::cout << runmove::y << " " <
runmove::padd = addp;
std::cout << runmove::padd(5, 6) << std::endl;
getchar();
}
9.使用using关键字的时候,必须在命名空间的后面
关于作用域:
A:在函数体内使用using的时候,using的作用域是从using这行代码开始到函数体结束。
B:函数体外使用using的时候,作用域是从using这行代码开始到文件本文件结尾。
案例说明:
#include
#include
namespacemydata
{
inta(6);
}
namespaceyourdata
{
inta(8);
}
//如果想使用mydata这个明明空间,并且使用using关键字,这时候要把using放
//在mydata命名空间后面
usingnamespacemydata;
usingnamespaceyourdata;
//using如果变量重名,会出现不明确错误,加上命名空间修饰符
voidgo()
{
//命名空间如果在块语句内部,作用域是定义开始到语句结束
std::cout << mydata::a << std::endl;
}
//using namespacemydata;//作用域为从代码开始到结束
voidmain()
{
std::cout << mydata::a << std::endl;
std::cout << yourdata::a << std::endl;
system("pause");
}
10.命名空间的嵌套,为命名空间起别名,命名空间的拓展
#include
namespacerunrunrunrun
{
inta(10);
char *str("gogogo");
namespacerun //命名空间的嵌套
{
inta(9);
}
}
//命名空间的拓展
namespacerunrunrunrun
{
int y(5);
//int a(15);重定义错误
}
//注意这里的r就是别名,而不是后者
namespacer =runrunrunrun;//给命名空间起一个别名
voidmain()
{
//命名空间可以嵌套
std::cout << r::run::a << std::endl;
std::cout << r::y << std::endl;
std::cout << r::a << std::endl;
system("pause");
}

11.关于默认参数问题
A:默认参数必须放在右边
B:默认参数中间不允许出现不默认的
#include
#include
#include
//默认参数必须放在右边
//默认参数中间不允许出现不默认的
voidprint(intc,inta = 1,intd = 2,intb = 3)
{
std::cout << a <
}
voidprintf(doublec)
{
std::cout << "hello,world" <
}
voidmain()
{
//print(1,2,3);
//函数指针没有默认参数,必须全部输入数据
void(*pt1)(intc,inta,intd,in