C++语言基础(01)

1.C与C++的关系

1.C++可以与C代码进行混编
2.C++面向对象编程语言、C面向过程的编程
3.C++对C的一个增强


2.指针常量和常量指针
//1.指针常量
//*p可以修改*p = 8;(OK)
//p不可以修改 p++(ERROR)
int a;
int * const p = &a    

//2.常量指针
int a,b;
//*p不可修改 *p = 8;(ERROR)
//p 可以修改 p = &b  (OK)
const int *p = &a;

//指针的话看const离谁( 是‘*’  还是‘指针变量名’)比较近就是修饰谁的
                                               
//还有一种*p 和 p均不可改变了
const int * const p = &a;    

总结与理解:
指针的值是要指向对象的地址。
主要取决于const修饰谁, 指针常量修饰的是指针,故指针的值是不可以改变的。不可以进行p++操作指向下一个地址。

常量指针是修饰指针指向的常量,这个常量的值不可以更改。


3.C++命名空间的概念
//标准命名空间(包含很多标准定义)
using namespace std;

作用:
提供了更小范围的作用域
用法:

namespace NSP_A
{
    int a = 9;
}

namespace NSP_B
{
    int a = 12;
    //命名空间嵌套
//::访问修
    namespace NSP_C
    {
        struct  Teacher
        {
            char name[20];
            int age;
        };
    }
}

void main()
{
    //使用命名空间
    using namespace NSP_A;
    using namespace NSP_B;
    cout << NSP_A::a << endl;
    cout << NSP_B::a << endl;
    //system.out.println() line

    using NSP_B::NSP_C::Teacher;
    Teacher t1;
    t1.age = 12;
    system("pause");
}

3 .一些特性
//类,可以同时声明多个同一级别
class MyTeacher
{
private:
public:
protected:

};

//结构体
struct  MySuperTeacher
{
private:
    char name[20];
    int age;
public:
    void say()
    {
        cout << "说话" << endl;
    }
};

C++ C中&符号的区别:

    int a = 10;
    //C语言正常语法 &表示:取地址
    //C++ &表示:引用
    int &b = a; //b实际上就是另外一个别名

    //引用必须要初始化
    //int &c;
   //引用的本质是:指针常量
    int a = 10;
    int b = 20;
    //指针常量(这个指针所保存的地址不能改变)
    int * const p1 = &a;
    //p1 = &b; //不能改变

     //int &c = a;
    //c = b;   //不能改变
//复杂类型的引用
struct Teacher
{
    char name[20];
    int age;
};

void myprint_0(Teacher p)
{
    //p只是t1的拷贝,并不会影响t1
    cout << p.age << endl;
    p.age = 25;
}

void myprint_1(Teacher *p)
{
    cout << p->age << endl;
    p->age = 35;
}

void myprint_2(Teacher &p)
{
    cout << p.age << endl;
    p.age = 45;
}

void main()
{
    Teacher t1;
    t1.age = 20;
    myprint_0(t1);
    cout << t1.age << endl;

    myprint_1(&t1);

    cout << t1.age << endl;

    myprint_2(t1);

    cout << t1.age << endl;

    system("pause");
}

你可能感兴趣的:(C++语言基础(01))