指针常量、常量指针、指向常量的指针常量的区别以及数组名的本质
1、指针常量(*const):对应指针变量,即指针本身是常量,指针指向的内容可以被修改。 数据类型 * const 指针变量=变量名(或取地址); int * const p ; 2、常量指针(const*):常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改。 数据类型 const * 指针变量=变量名(或取地址); int const * p ; const int * p ; //都可以 3、指向常量的指针常量:即指针本身是常量,指向的内容也是常量,都不能修改。 -const 数据类型 * const 指针变量=变量名(或取地址); const int * const p ; 4、数组名 指针和数组名在本质上是不同的, 1,指针是地址变量,而数组名是地址常量 数组名本质上是一个 地址常量 ,不是指针,不管是指针常量还是常量指针都不是,之所以在实际编程中,数组名表现出“是”指针的样子,那是因为经过隐式转换形成的,而不是数组名本身具有的 指针与地址的区别: 1、指针和地址最大的区别就是指针是有类型的,地址是没有类型的。我们当然可以通过绝对地址的方式找到函数和数据,但是地址是没有类型的,不能对地址进行算术操作,在涉及诸如数组等操作时就不能通过地址的自增和自减来访问数组的各个变量。 2、指针是由地址和类型两部分构成的