const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)

时间:2023-03-08 16:45:48

这里很容易搞混;

  • tyepdef  double dou;//这里是dou是double的别名
    

      

  • #include<iostream>
    
    using namespace std;
    
    int main()
    {
    typedef char *pstring; //pstring实际上是指向char的指针。 const pstring cstr = 0; //cstr 是指向char 的常量指针
    const pstring *ps; //ps是一个指针,他的对象是指向char的常量指针 const char *str = 0; //声明了一个指向const char 的指针
    const int a = 0;
    int const b = 0; // 上下一样的 //const直接修饰的变量必须初始化,但是像const int *c这种的不用初始化!!!! // const 修饰的指针所指向的内存空间不准变 这个不用初始化 const int *c; // c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)
    int * const d = 0; // d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
    const int * const e = 0; // e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改) system("pause");
    }

      

  • 其中
    const pstring cstr = 0;	//cstr 是指向char 的常量指针 pstring的类型为char * const
  • const int *c;   // c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)