• 学习指针遇到的问题


    第一个问题:

     

    上边这个图中打印出来的ptr1的地址和&ptr1的地址分别是什么的地址?

    我理解的ptr1的地址就是ptr1这个指针变量自己的地址,&ptr1的地址就是ptr1这个指针指向的地址,也就是这个程序中urn这个字符数组的首地址,是这样吗?

    如果我的理解是正确的话,是不是就是代表ptr1 = urn;这句话把urn的地址赋给指针ptr1就可以理解为,ptr1这个指针本身的地址不变,ptr1这个指针指向urn的首地址。

    第二个问题:

    在书中讲const关键字的时候提到了const关键字在指针变量之前时,指针p是可以改变的,指针所指向的内容是不可改变的。比如:

    1 int const a = 100;
    2 
    3 cons tint *p;
    4 
    5 p = &a;

    这里指的指针所指向的内容不可变是指p的类型不可变,只能是整数型还是指a的值不能变?我编程调试的时候发现a的值是可变的,所以是不是这里指的内容不可变指的就是内容的类型不可变。

     

    第三个问题:

    在书中讲const关键字的时候提到了const关键字在指针变量的定义之中,指针p的值不能改变,指的是指针只能指向某个地址不能改变吗?如果是这样的话(看下面的代码),p就是只能指向a的地址不能再改变了吗?那这样的话是不是改变a的值再打印*p的值就是已经修改过的a的值。

    1 int a = 100;
    2 int * const p = &a;

    指针这一块的知识之前基本为零,所以这两天看的很吃力,进度有点慢,希望老师给解答一下,然后你看看指针这一块有没有什么需要注意的,需要特别注意去学习的地方跟我说一下。

  • 相关阅读:
    Windows下使用nmake编译C/C++的makefile
    poj 1228
    poj 1039
    poj 1410
    poj 3304
    poj 1113
    poj 2074
    uva 1423 LA 4255
    poj 1584
    poj 3277
  • 原文地址:https://www.cnblogs.com/Mr--Yang/p/6114948.html
Copyright © 2020-2023  润新知