美文网首页
[C 指针] 指针与常量

[C 指针] 指针与常量

作者: AkuRinbu | 来源:发表于2019-04-06 17:37 被阅读0次

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
1.4.2 常量与指针

0. 普通指针 :指向 变量 的指针

  • 可以修改指针,使其指向不同的地址
  • 可以通过指针修改此时指向的数据

1. 指向 常量 的指针

  • 两种等价写法
    const int * pci;
    int const * pci;
  • 不可以 通过pci来修改指向的数据
  • 可以 使pci指向其他地址
  • pci可以指向变量,就是不能通过pci来修改这个变量,可以直接修改这个变量

2. 指向 非常量 的 常量指针

int num;
int * const cpi = #
  • cpi永远指向num,即cpi里面永远存着num内存地址cpi的值不能改);
  • num必须是变量,里面存的数据可以变化,即可以通过cpi来修改num的值
int * const cpi = & num ;
#include <stdio.h>

int main()
{
    int num = 10;
    int* const cpi = &num;
    
    printf("num = %d , *cpi = %d\n", num, *cpi);
    printf("After num = 77\n");
    num = 77; // 可以直接修改num的值
    printf("num = %d , *cpi = %d\n", num, *cpi);
    printf("After *cpi = 88\n");
    *cpi = 88; // 可以通过cpi来修改num的值
    printf("num = %d , *cpi = %d\n", num, *cpi);

    return 0;
}
  • 看看怎么提示?
    Case2 表达式必须是可修改的左值?
    首先,是因为cpi已经指向了num并且声明为常量指针,就只能一直指向num,而不能指向新的age
    其次,这个提示语是从age的角度出发, 它提示你说age需要一个新的指针来配合自己,而不能拿已经指向numcpi了。

3. 指向 常量 的 常量指针

int num;
const int * const cpci = &num;
  • pci的值(即指向的地址)不能改
  • 也不能通过pci来修改所指向的数据

4. 指向 “ 指向 常量 的 常量指针” 的 指针

const int limit;
const int * const cpci = &limit;

const int * const * pcpci;
pcpci = &cpci;
  • (const int * const * ) pcpci;
    指针变量名是 pcpci
  • (const int * const) * pcpci;
    指针指向的数据类型是const int * const (这是Case3 指向常量的常量指针

参考资料

相关文章

  • C++ 指针常量、常量指针和常指针常量

    参考:C++ 指针常量、常量指针和常指针常量

  • 指针与数组(1)

    本章主要整理归纳数组与指针、指针常量、常量指针的概念 C中,令人最为不解的应该就是指针的概念了,而数组与指针混在一...

  • 2019-05-22 常量与指针,数组与指针

    常量与指针,数组与指针 常量与指针 常量与指针的关系很容易弄混,为此我专门在此记录一下。 常量指针 指向常量的指针...

  • [C 指针] 指针与常量

    学习笔记 《深入理解C指针》http://www.ituring.com.cn/book/11471.4.2常量与...

  • C++指针常量与常量指针

    指针常量:指针本身是常量,指针的值不能改变常量指针:指针指向的值是“常量”(打引号表示的是不能通过指针改变指向的值...

  • 计算机基础的考察

    语言语法(以C/C++为例)。 指针(数组),函数指针,操作符运算顺序,const(常指针与指向常量指针),sta...

  • C++中的const和指针

    C++中的const可以与指针一起使用,通常可以归纳为3种:指向常量的指针,常指针,指向常量的常指针。 (1)指向...

  • const 相关

    1.常量指针与指针常量 常量指针是针对于普通指针而言,语义在于指向常量的指针;定义: const *...

  • C/C++的指针常量与常量指针

    一、指针常量 指针常量首先是常量,用指针修饰,也就是指针的常量。指针本身不可被修改,但其指向的值可以被修改。 in...

  • C中的指针常量与常量指针

    指针常量: int a; int * const p = &a: 从左往右读,先指针后常量,所以叫指针常量,本质为...

网友评论

      本文标题:[C 指针] 指针与常量

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