C++第一课

1.命名空间的嵌套
#include <iostream>

using namespace std;

int aaaa;//不赋值 直接输出它的值的时候,因为是全局变量 所以默认给了值 0,如果是局部变量 那么就是一个垃圾值
//在C中全局变量可以重复定义 后定义的覆盖前面的 但是 C++不行 检测机制更加严格

namespace A
{
    int a = 1;
    void print()
    {
        cout << "namespace a" << endl;
    }
}

namespace B
{
    int a = 2;
    void print()
    {
        cout << "namespace b" << endl;
    }
}

namespace C
{
    namespace D
    {
        struct test
        {
            int x;
        };
    }
}

2.regist的变量

register int aa;
    cout << "a的地址是 " << &aa << endl;//这时候给的地址是在内存中随机分配的一个地址
    //因为本来寄存器变量是不存在地址的 
    //但是G++默认这种取地址行为是可以的 所以自动给你分配了一个内存地址

    int a1 = 1, b1 = 2;
    (a1 > b1) ? a1 : b1 = 10;
    //作为一个三目运算符 在C++中的运算结果 返回的是变量 b1
    //所以可以对其赋值
    cout << "b1 = " << b1 << endl;
    //但是在C中三目运算符 运算结果 返回的是 数值常量 2,所以不可以进行赋值


    cin.get();//等待一个输入再退出程序 也可以用system("pause"); 多+一个 #include <windows>
    return 0;
}
*/

3.//指针的引用
/*
#include <iostream>
#include <cstring>
#pragma warning (disable:4996)//注意:因为vs2013版本级以后不支持strcpy这个函数 unsafe加这个去除警告(error
using namespace std;

void initMemory(char *&ptr)
{
    ptr = (char *)malloc(100);
}

int main()
{
    char *str = NULL;
    initMemory(str);
    strcpy(str,"hello");
    cout << "str = " << str << endl;
    
    cin.get();
    return 0;
}
*/

4.在C艹中define和const的区别。 
前者作用域是从这一行往下。 
后者作用域可为局部变量。

#include <iostream>

using namespace std;

void print()
{
    const int a = 1;
    #define b 2
    cout << a << " " << b << endl;
    #undef b
}

int main ()
{
    print();
//  cout << a << endl;
    cout << b << endl;
    return 0;
}

5.

//函数指针指向重载函数
#include <iostream>

using namespace std;

int add(int a, int b)
{
    return a + b;
}

float add(float a, float b)
{
    return a + b;
}

int main()
{
    int a = 1;
    int b = 2;
    float c = 1.1;
    float d = 2.0;

    cout << "add(a, b) = " << add(a, b) << endl;
    cout << "add(c ,d) = " << add(c, d) << endl;

    int(*p)(int, int);//函数指针指向函数add(int型的)
    p = add;
    p(2 , 3);

    float(*q)(float, float);//同上
    q = add;
    q(2.1, 3.1);

    cin.get();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/ys5858588/article/details/81110812