如何解决在“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
所在的内存地址,如果x
是x
,则不能更改无论哪种方式,如果不是,则意味着它可以更改,但不能通过该特定指针进行更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。