我的c++测试程序老是段错误 为什么 求大神解答 20
#include<iostream>usingnamespacestd;intprint(inta,intb);//intprint(inta,charb);intpri...
#include <iostream>
using namespace std;
int print(int a, int b);
// int print(int a, char b);
int print(char a, int b);
int main()
{
char* trip =const_cast<char*>( "fdsf");
trip[1]='f'; //有了这行 编译的时候没报错,运行的时候就报段错误
cout << trip[1] << endl;
cout << print (3 ,4.888) << endl;
}
int print(int a, int b)
{
return a;
}
// int print(int a, char b)
// {
// return a;
// }
int print(char a, int b)
{
return b;
} 展开
using namespace std;
int print(int a, int b);
// int print(int a, char b);
int print(char a, int b);
int main()
{
char* trip =const_cast<char*>( "fdsf");
trip[1]='f'; //有了这行 编译的时候没报错,运行的时候就报段错误
cout << trip[1] << endl;
cout << print (3 ,4.888) << endl;
}
int print(int a, int b)
{
return a;
}
// int print(int a, char b)
// {
// return a;
// }
int print(char a, int b)
{
return b;
} 展开
2014-12-08
展开全部
const_cast只能改变指针的const属性,而不能改变或者去掉本身的const属性。
你的指针指向了"fdsf",修改的还是"fdsf",根据上面的结论,"fdsf"仍然是const的没有改变,所以修改出现运行时错误,编译阶段不会报错。
你的指针指向了"fdsf",修改的还是"fdsf",根据上面的结论,"fdsf"仍然是const的没有改变,所以修改出现运行时错误,编译阶段不会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询