C指针复习(二) 指针常量和常量指针

概念

  • 常量指针: 常量指针是指向一个常量(不可改变其值)的指针. 即指针本身的值(指针指向的地址)可改变, 但是指针指向的内容(地址对应的值)不可改变.

  • 指针常量: 指针常量是一个指向固定地址的指针, 即指针本身的值(指针指向的地址)是常量, 不可改变, 但是指针指向的内容(地址对应的值)可改变.
    简单写法

  • 常量指针

    • const int *ptr;
    • int const *ptr; 这两种意义一样, 只是写法不同.
  • 指针常量

    • int * const ptr;
  • 简单理解1: 指针和 const 谁在前就先读谁. 例如:

    • const int *ptr;, const在前, 指针在后, 那么就是常量指针.
    • int * const ptr;, 指针在前, const 在后, 那么就读指针常量.
  • 简单理解2: 判断限制域的时候,const总是修饰其左侧标识符,如果const位于最左侧则修饰其右侧标识符. 例如:

    • const int *ptr;, const 在最左侧, 限制右侧 int 指针指向的内容就不能改变, 也就是指向的地址的值.
    • int * const ptr;, 指针在const前, 那么就是指针指向的地址不能改变, 但是指向地址的值可改变.

指针常量和常量指针的另外一种表达方式

  • 指针常量
char arr[4][3] = {"abc", "a1a","a2a", "a3a"}; 

常量指针

char *arr1[3] = {"a","b","c"};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容