美文网首页
const修饰指针变量

const修饰指针变量

作者: NullUser | 来源:发表于2021-01-16 11:21 被阅读0次

const修饰指针有两种情况,

情况一:是const修饰后无法改变指针所指向地址的内容,但指针可以指向其它地址,即指针自身可以被改变。
int a = 1;
int b = 2;
const int *pa = &a;
*pa = 3;  //报错
pa = &b;

指针pa指向了变量a的地址,指针自身的值此时等于a的地址,此时的const写法,const int pa = &a;表示pa指向的a的地址所存放的值无法修改,所以*pa=3;在试图通过pa修改a的值时,会报错,而pa=&b改变的是指针pa的值,所以不会报错。

情况二:另一种是无法修改指针所指向地址,即指针自身不能被改变,但可以修改所指向地址的内容。
int a = 1;
int b = 2;
int * const pa = &a;
*pa = 3;
pa = &b; //报错

指针pa指向了变量a的地址,指针自身的值此时等于a的地址,此时的const写法,int * const pa = &a;const修饰指针自身,pa自身的值无法修改,所以**pa=3;在试图通过pa修改a的值时,不会报错,而pa=&b改变的是指针pa的值,所以会报错。

const修饰指针

int a = 1;
int b = 2;
const int * const pa = &a;
*pa = 3;  //报错
pa = &b; //报错

此时指针自身的值无法改变,指针指向的地址的内容也无法改变。
*pa=3;和pa=&b;在试图通过指针pa修改a的值和pa自身的值时都会报错。

相关文章

  • const修饰指针变量/引用/对象

    const修饰指针或者指针变量的区别 分辨的规则在于从const起往右读取 被修饰的是指针还是指针变量 const...

  • IOS关键字const/static/extern/synthe

    const const用来修饰右边的基本变量或指针变量被修饰的变量只读,不能被修改 static 修饰变量保证局部...

  • iOS巩基系列(二)——const、static、extern

    const const用来修饰右边的基本变量或指针变量 被修饰的变量只读,不能被修改 static 修饰局部变量在...

  • OC中的extern,static,const

    const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p)。 被const修饰的变量是只...

  • const

    const 修饰 一般变量 或者 指针变量int const a = 1;int const *b; 被const...

  • const static extern #definf

    const const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p) 被const修饰的变量是只读的。 s...

  • const、static、extern使用

    const作用: 1.修饰右边指针变量和基础变量 2.被修饰的变量不可变 const使用场景: 修饰全局变量---...

  • C++ const

    修饰成员变量 const修饰指针变量时: (1)const出现在星号左边,表示被指物是常量 (2)const位于*...

  • const、static、extern

    const 限制类型:仅仅用来修饰右边的变量(基本数据变量,指针变量)被const修饰的变量只读。 和define...

  • OC中的extern,static,const

    const的作用: 1.const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p)。2.被const修饰的变...

网友评论

      本文标题:const修饰指针变量

      本文链接:https://www.haomeiwen.com/subject/qfcnaktx.html