对于int *const a为指向整形的常量指针 起对象的值可以变但是指向对象不能变
const int *a指向整形常量 的指针对象能变但是对象值不能变
#include<iostream>
using namespace std;
int main()
{
int a = 3;
int c = 5;
int*const b = &a;//常量指针
a = 3;
*b = 5;
const int* d = &a;整形常量的指针
a = 3;
}
对于什么是底层const和顶层const 底层大概就是控制指针,引用的常量(对于一个常量不能被转换为变量而变量能转换为常量
#include<iostream>
using namespace std;
int main()
{
int a = 3;
const int * p = &a; //a为变量而p为常量
//int* c = p;错误因为c为变量而p是常量
-
- }
- 对于函数中有常量,实参的传递回忽略掉顶层的const eg:type f(const int a) 相当于可以看做type f(int a);
- Const int *a为指向整形常量 的指针其指向对象的值不能修改
- Int *const a 指向对象不能不能改,对象值可以改
- 常量不能转变量,而非常量可以转常量(欢迎纠错)