c++day01 引用符号的使用

大家好,我是阿林,一个c++的初学者。记录我学习c++的过程。

引用符号相当于在原有的空间命名中取了一个别名。

/引用的概念
void main91()
{
    int a = 10;

    int &b = a;//相当取了一个别名

    b = 100;//通过把a修改成100了

    cout << "a = " << a << " b = " << b << endl;
    system("pause");
}


void main93()
{
    int a = 10;
    int  &b = a;
    //int &c;//普通引用必须要初始化
    system("pause");

}
 引用符号是由他自己的空间存储的。通过引用可以间接赋值。

我们要区分指针和取地址符号复杂函数的使用。下列我写了一些函数可以更加好的区分它的作用

struct Teacher
{
    char name[64];
    int age;
};

void printfT(Teacher* pT)
{
    cout << pT->age << endl;
}
//pT是t1的别名,相当修改了t1;
void printfT2(Teacher& pT)
{
    //cout << pT.age << endl;
    pT.age = 33;

}

//pT和t1是两个不同的变量
void printfT3(Teacher pT)
{
    cout << pT.age << endl;
    pT.age = 45;//只会修改pT变量,不会修改t1变量

}

void main94()
{
    Teacher t1;
    t1.age = 35;
    printfT(&t1); //相当于传给一个地址,取地符号在这里的引用
    printfT2(t1); //pT是t1的别名
    printfT3(t1);// pT是形参,t1是拷贝一个数据给pT
    cout << "t1.age: " << t1.age << endl;


    system("pause");
    return;
}

//普通引用是有自己的空间的
struct Teacher2
{
    char name[64];//64
    int age; //4

    int &a; //10 0 
    int &b; //10  0
};


int modifyA(int& a1)
{
    a1 = 100;

}
int modifyA2(int* const a1)
{
    *a1 = 10; //*实参的地址,间接的修改实参的值。


}

//3引用的本质
int main()
{
    int a = 10;
    modifyA(a); //指向这个函数调用的时候,我们程序员不需要取a的地址


    modifyA2(&a); //如果是指针,需要我们程序员手工取实参的地址
    //char* const p;//引用是一个常量的指针
    /*cout << "sizeof(Teacher2)" << sizeof(Teacher2) << endl;*/

    /*printf("sizeof(Teacher2):%d \n", sizeof(Teacher2));*/
    system("pause");
}
 

你可能感兴趣的:(c++,开发语言,算法)