微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在“const int *myPtr = &x”中改变 x

如何解决在“const int *myPtr = &x”中改变 x

在我关于 C 指针的讲义中,我得到了以下内容

    cmd.CommandText =@"UPDATE customer 
                    SET title = @setTitle,firstname = @setFirstname,lastname = @setLastname 
                    dob = @setdob,nicode = @setNICode,email = @setEmail,password = @setPassword,allowance = @setAllowance 
                    WHERE custid = @recd";

最后一句正确吗?

这对我来说没有意义,因为 const int *myPtr = &x; // regular pointer to a const int,//x can not be changed through myPtr,but *myPtr yes. x 是一样的,不是吗?

如果它是正确的,该语句的示例是什么?

解决方法

最后一句话是否正确?

您不能将 x 更改为 myPtr,即使 x 不是 const。如果这意味着您可以更改指针本身,那么它是正确的,因为指针不是 const

如果是这种情况,那么该语句会令人困惑,如果是 //x can not be changed through myPtr,but myPtr yes... 会更好。虽然有细微的差别,但它会改变其含义。

If "...but *myPtr yes" 只是意味着您可以直接或通过非常量指针更改 x,如果 {{ 1}} 不是 x 限定,​​那么它是正确的,我不会那样说,但我想这是一种可能的解释。

这对我来说没有意义,因为 x 和 *myPtr 是一样的,不是吗?

严格来说是不一样的,但是const指向的是myPtr所在的内存地址,如果xx,则不能更改无论哪种方式,如果不是,则意味着它可以更改,但不能通过该特定指针进行更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。