您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> c++ 类型转换中失败

c++ 类型转换中失败

来源:网络整理     时间:2016/6/5 15:26:08     关键词:C++,失败

关于网友提出的“c++ 类型转换中失败”问题疑问,本网通过在网上对“c++ 类型转换中失败”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:c++ 类型转换中失败
描述:

const short* const*short* const* 以及 const short* 都是啥意思呀,亲们

俺声明一个 short* ptr; 该肿么转换?


解决方案1:

const 是对指针的修饰,表示权限.

如果是常数,那么没有区别。如:
const int a = 3;与int const a = 3是没区别的。
但如果是指针就不同了。
int a = 1;
int const p = &a;
以上的语句,p指向的地址不能改变,但p指向的地址里面的值是可以改变的。比如
p = 2,这样a肚子里的值1就改变成2了。当然p的值也变为2。但不能p = &b;试图想把p指向变量b。
/////////////
int b = 4;
int const *p = &b;
这两条语句与上面的相反。p指向的地址可以改变,但它的值不能直接改变。也就是说可以执行p = &a这样的操作,因为这只是改变p指向的地址。不能执行
p = 2这样的操作,因为这样是直接改变值。

引自http://zhidao.baidu.com/link?url=SEG9mfxLNRlwl7E1C21B7Gc1_z51bGotCrJx6...

解决方案2:

const short* 和 short * ptr是一级指针,可以直接转换;
const short* const* 跟 short* const* 是二级指针了,指向指针的指针;这个转到short* ptr应该没有意义了?

解决方案3:

我来说说简单的const和指针变量搭配的情况,题主有点难懂。
const int * a;int const * a;完全一样,通过这个指针无法改变它所指向的变量的值,即*a = 12是非法的。但可以改变指针指向,即改变指针本身的值,如a = p;。(p是一个合法的指针变量,一般也是int *)
int * const a;无法改变指针指向,及指针本身值,但可以改变指针指向的变量的值


以上介绍了“c++ 类型转换中失败”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1537318.html

相关图片

相关文章