美文网首页
开号第一天

开号第一天

作者: 执笔写人生 | 来源:发表于2017-03-14 11:33 被阅读0次
    据说这是程序员

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

    1、命名空间

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

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

    namespace A
    {
        int a = 3;
    };
    namespace B 
    {
        int a = 6;
    }
    
    cout << A :: a <<endl;
    cout << B :: a <<endl;
    

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

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

    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 <<endl;    //猜猜此时会输出什么?
    

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

    相关文章

      网友评论

          本文标题:开号第一天

          本文链接:https://www.haomeiwen.com/subject/uzkcnttx.html