指针一般认为是一个地址常量,但是指针变量指的是变量所取的值为地址的变量
指针变量在使用中一般称作指针
但两者所指并不相同
const在星号右边,则这是个常量指针,在星号左边,则被指物是常量.
但是对于迭代器 const vetor<int>::iterator iter // 却是指针是一个常量,他有自己的常量迭代器类型
vector<int>::const_iterator
指针变量是指向指针(即指针)的变量
指针存储地址,数组什么都可以存
数组不支持++,--,+=,-=等- -
因为是常量指针
指针常量 - -
- -指针变量多了可以赋值的
那指针变量跟指针有什么区别
整形变量,和10的区别
&出来的都是只读指针
*p 为指针变量 &i 是i变量的地址
XX变量- -就是放XX的变量
指针变量就是存放指针的变量
p不是i的指针
就像int a
a不是10的整形
p是指针变量
&i才是i的指针
int a = 10;
那么a的值就是10
指针是地址加上数据的类型
指针变量也是一种变量
p=&i,p指向i,&i是i的指针
既然是变量- -就是存放这个变量类型的东西
那个变量专门存放地址
就像两种类型的指针必须要强制转换一样
I的地址指针
const int *p;
int *p=0x00000000 const;
const int *p=0x00000000 const;
搞清楚这3个指针
const int *p;
不能改变地址
int *p=0x00000000 const;
不能改变地址
const int *p=0x00000000 const;
不能改变地址里面的值
第一个是不能改变地址里的数值
第二个是不能改变指向的地址
第三个是不能改变指向的地址,也不能改变指向地址里的值
int a=123456789,b=987654321;
const int *p;可以修改指向地址,但是只能读地址,不能写,*p=321,错误
int *const p1=&a ;不能修改指向地址,但是可以读写地址,p1=&b,错误
const int *const p2=&a ;既不能修改指向地址,也不能写地址,只能读地址,*p2=123,错误,p2=&b,错误
const是一个C语言的关键字,它限定一个变量不允许被改变