const与指针
2013-04-08 11:54
155 查看
指向常量的指针:
指针p的指向可以改变,但是指针p指向的变量的值不能通过p来改变。
const指针:
指针的指向在声明时确定后就不能更改,但是可以改变指针指向变量的值。
结论:const在*左边,指针的指向可以改变,指针指向的变量的值不能通过指针改变(可以通过其他方法更改变量的值),很多函数的参数类型就是const type *,就是为了防止在函数中改变指针指向变量的值;const在*右边,指针的指向不能改变,声明时必须确定指针的指向,指针指向的变量的值可以改变。
附加:
*运算符和++,--,->的使用。
*p++ 先执行指针+1,然后对指针执行间接访问运算;++*p先执行间接运算,然后对间接运算得到的结果+1。(--运算符相同)
++q->a; 先执行->运算再对a执行++运算。
q++->a; 先对q进行++运算然后再执行->运算。(--q->a和q--->a类似吧)
const int *p; int const *p;
指针p的指向可以改变,但是指针p指向的变量的值不能通过p来改变。
const int *p = &a; p = &b; //正确 (*p)++; //不会报错但是不能改变p指向的变量的值
const指针:
int * const p;
指针的指向在声明时确定后就不能更改,但是可以改变指针指向变量的值。
int * const p = &a; //声明时必须确定指针的指向 (*p)++; //可以改变指针指向变量的值 p = &b; //会报错,无法改变const指针的指向
结论:const在*左边,指针的指向可以改变,指针指向的变量的值不能通过指针改变(可以通过其他方法更改变量的值),很多函数的参数类型就是const type *,就是为了防止在函数中改变指针指向变量的值;const在*右边,指针的指向不能改变,声明时必须确定指针的指向,指针指向的变量的值可以改变。
附加:
*运算符和++,--,->的使用。
*p++ 先执行指针+1,然后对指针执行间接访问运算;++*p先执行间接运算,然后对间接运算得到的结果+1。(--运算符相同)
struct test{ int a; char c; };
struct test *q;
++q->a; 先执行->运算再对a执行++运算。
q++->a; 先对q进行++运算然后再执行->运算。(--q->a和q--->a类似吧)
相关文章推荐
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- 娓娓道来c指针 (6)const的使用
- 第九章 指针与const
- 指针--引用--const
- C++基础---指针与const
- const 和指针
- C语言的const关键字与指针搭配使用
- [指向const对象的指针] 和 [const指针]
- C++ 指针 引用 const
- const 指针与指向const的指针
- 指针与const
- C++的const、指针、引用总结
- pointer on C_2 基本数据类型 指针 const
- 强制转换const类型指针
- const 指针与指向const的指针
- const修饰的多级指针
- const指针和指向const的指针
- C++:带有const修饰的指针解读
- c++中的const与指针
- const指针与指向const的指针