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

Posted 菜鸟根据地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)相关的知识,希望对你有一定的参考价值。

这里很容易搞混;

  • 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是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改)

以上是关于const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)的主要内容,如果未能解决你的问题,请参考以下文章

const指针与typedef的交互以及c中的函数声明

typedef 指针 const 怪异

const修饰符在不同位置带来的效应

函数指针

const 成员函数和 typedef,C++

const constptr 和引用的盲点