首页 > 试题广场 >

请问 c 语言中怎么去除 const 修饰? 比如: con

[问答题]
请问 c 语言中怎么去除 const 修饰? 比如:
const double value=0.2f; double *ptr;
ptr 怎么样获取 value 的值?
#include<stdio.h>
int main() {
    const double value = 0.2f;
    double *ptr = (double*)&value;
    printf("%.1\n", *ptr);
}
发表于 2016-08-22 09:50:46 回复(0)
建立一个临时变量,将value的值赋给临时变量,将ptr指向该临时变量即可
#include <iostream>

void yanfa2012q4()
{
	const double value=0.2f;
	double b;
	double *ptr=&b;
	b=value;
	std::cout<<*ptr;
}

编辑于 2015-07-16 19:22:27 回复(1)
const double value=0.2f;
double *ptr = const_cast<double *>(&value);

发表于 2015-09-11 10:10:41 回复(1)
gdn头像 gdn
#include <stdio.h>

int main(void)
{
    const double x = 3;
    double *px = NULL;
    const double **ppx = &px;

    *ppx = &x;
    *px = 4;
    printf("%g\n", x);
    return 0;
}
他想考的应该是通过指针的指针修改const变量,不是直接暴力地强制转换吧。。

编辑于 2016-10-05 18:20:56 回复(0)
??直接像下面这样读取会怎样???不可以吗?
#include <stdio.h >
int main()
{    const double value=0.2f;
     double *ptr;
     ptr = &value;
     printf("%.1f",*ptr);
}

发表于 2016-08-27 12:12:08 回复(0)

a.     能否将一个非常量对象的地址赋给一个常量指针?

b.     能否将一个常量对象的地址赋给一个非常量指针?若确要如此,该如何做?

可以将非常量对象地址赋值给常量指针,但是不能将常量对象地址给非常量指针,因为其无法保证不修改常量对象。

若却要如此,则只能强制转换,能编译通过,但却可能存在隐患。因此编译器的工作就是将一切可能的隐患扼杀在摇篮中。

void main()

{

const int i=5;

int *j=const_cast<int *>(&i);

}

顶0
编辑于 2016-08-22 09:43:24 回复(1)
Ptr=(int ) *&value;
发表于 2015-09-16 23:02:33 回复(0)
<pre class="prettyprint lang-cpp">const double value=0.2f; double *ptr = (double*)&amp;value; cout &lt;&lt; *ptr;</pre> <br />
发表于 2015-08-14 20:17:31 回复(0)
// 强制转换 
 double* ptr = (int*) &value;
发表于 2014-12-31 13:21:33 回复(0)
Ptr=(int *)&value;
编辑于 2015-11-26 22:13:11 回复(1)

const int* const_p = &constant;

int* modifier = const_cast(const_p)

发表于 2014-10-25 00:26:03 回复(0)