学习指针遇到的问题

第一个问题:

 

上边这个图中打印出来的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;

 

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

转载于:https://www.cnblogs.com/Mr--Yang/p/6114948.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值