例如,是
(const int)* someInt;
有效代码?
如果是,该声明是否与
不同const int* someInt;
答案 0 :(得分:2)
您可以在表达式周围添加任意多个括号而不更改含义。但你不能对类型做同样的事情。特别是,正如其他人所指出的那样,代码中的括号会改变声明中的含义。
答案 1 :(得分:0)
您可以在内部使用任何类型执行c样式转换,但是您尝试转换的表达式可能无法以这种方式转换。
你不能在演员的右手边有任何类型。您需要用户定义的转换运算符才能执行转换。
答案 2 :(得分:0)
这似乎对我有效,因为你可以每次都有一个指向常量值的指针。
我不认为两者之间存在差异。
答案 3 :(得分:0)
如果someInt
定义为
int *someInt;
然后
(const int)* someInt;
有效。否则你会遇到错误。
您需要指向int
的指针并将结果值转换为const int
。
是的,这个没有任务的声明被浪费了。
int rtn = (const int)* someInt;