C++学习笔记之指针和const
2018-01-16 20:27
369 查看
指针本身是一个变量,本质上是一个存放其他变量的地址的变量。
与const有关的指针可以分为3种:
指向常量的指针
常量指针
指向常量的常量指针
指向常量的指针
指针本身的值(地址)可以修改(比如赋予新的地址,使之指向另一个变量),但指向的常量的值不能修改。
const int a=1;
int *ptr=&a;
*ptr=2;//错误,指向的变量是个常量,不能修改
常量指针
指针本身的值(地址)不能修改,但是可以通过指针修改指针指向的普通变量的值。
格式:type *const name
注意*号在const之前
int a=1;
int *const ptr=&a;
*ptr=2;//通过指针修改指向的变量的值
cout<<"a="<<a<<endl;
输出:a=2
指向常量的常量指针
指针本身的值(地址)不能修改,指向的常量的值也不能修改。
格式:const type *const name
第一个const表示指针指向了一个const常量
第二个const表示指针是个常量指针
const int a=1;
const int *ptr=&a;
*ptr=2;//错误,指向的变量是个常量,不能修改参考资料:《C++ Primer》
与const有关的指针可以分为3种:
指向常量的指针
常量指针
指向常量的常量指针
指向常量的指针
指针本身的值(地址)可以修改(比如赋予新的地址,使之指向另一个变量),但指向的常量的值不能修改。
const int a=1;
int *ptr=&a;
*ptr=2;//错误,指向的变量是个常量,不能修改
常量指针
指针本身的值(地址)不能修改,但是可以通过指针修改指针指向的普通变量的值。
格式:type *const name
注意*号在const之前
int a=1;
int *const ptr=&a;
*ptr=2;//通过指针修改指向的变量的值
cout<<"a="<<a<<endl;
输出:a=2
指向常量的常量指针
指针本身的值(地址)不能修改,指向的常量的值也不能修改。
格式:const type *const name
第一个const表示指针指向了一个const常量
第二个const表示指针是个常量指针
const int a=1;
const int *ptr=&a;
*ptr=2;//错误,指向的变量是个常量,不能修改参考资料:《C++ Primer》
相关文章推荐
- C++ Primer Plus学习笔记之const修饰指针
- C++ 学习笔记(2)变量和基本类型(复合类型:引用、指针)、const、constexpr、typedef(using)、auto、decltype
- VS2010 C++ 学习笔记(六) this指针 const 指针 引用
- C++学习笔记(三)--函数参数,数组函数,指针和const,二维数组函数,递归,函数指针
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- 【从C到C++学习笔记】引用/const引用/引用传递/引用作为函数返回值/引用和指针的区别
- 【C++学习笔记】15_指针和const
- C++学习笔记-const
- C++学习笔记(四)--指针(4)
- C/C++学习笔记18:指针数组和数组指针
- C++学习笔记30,指针的引用(2)
- C/C++学习笔记21:句柄与指针
- c++学习笔记(三):指针(&和*)运算符
- c++学习笔记(四):函数按指针调用和按引用调用
- C/C++中关于地址、指针和引用变量的学习笔记(五) : 指针
- C++学习笔记之指针
- C/C++学习笔记-数组和指针
- C++学习笔记四(const详解)
- C++学习笔记(八):函数重载、函数指针和函数对象
- 【C++】【学习笔记】【未成功实现】关于指针的函数【very difficult】