开号第一天

开号第一天_第1张图片
据说这是程序员

驻扎在也算好久了,偶然间的相逢便爱上了这里的一切,简洁的面板,清爽的主线。可以在这无人相识的世界里尽情地释放激情,随心所欲,无拘无束,渐渐从少年变成码农,从愤青变成了吃瓜群众。我的主号的文章写太杂,特开此小号与大家共勉。在主号中我是想写就写,没有规划,但在此小号中我想每日一更,专注做技术分享,可又能坚持多久呢???期待中。。。废话不多说,上今天所学知识点

1、命名空间

在c语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。命名空间可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围。

命名空间的定义使用关键字 namespace,后跟命名空间的名称,为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称

namespace A
{
    int a = 3;
};
namespace B 
{
    int a = 6;
}

cout << A :: a <

可以使用 using namespace 指令,这样在使用命名空间时就可以不用在前面加上命名空间的名称。这个指令会告诉编译器,后续的代码将使用指定的命名空间中的名称。

namespace A
{
    int a = 3;
};
using namespace A;
namespace B 
{
    int a = 6;
}
//using namespace B;    这里 A 与 B 只能是任意一个,若同时存在输出会发生二义性,编译报错
cout <<  a <

2、输出 char *的变量

  char *p = "hello  world";
  cout << p << endl;      //此时错误

错误原因是赋值两边的类型不一致

  const char *p = "hello  world";
  cout << p << endl;     //此时正确

输出结果是: hello world
额... 竟然是 p 所指对象的内容

  const char *p = "hello  world";
  cout << (void *)p <

输出结果是: 0x80487c0
哈哈 此时竟然是 p 所指对象的地址

你可能感兴趣的:(开号第一天)