#include<iostream>
using namespace std;
int main(){
char *p="John";
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
编译时没出错,运行时系统报错,这是为何?
12 个解决方案
#1
#include<iostream>
using namespace std;
int main(){
char p[]="John";
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
using namespace std;
int main(){
char p[]="John";
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
#2
#include<iostream>
using namespace std;
int main(){
char *p;
char a[100]="John";
p=a;
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
using namespace std;
int main(){
char *p;
char a[100]="John";
p=a;
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
#3
你没有对指针限定范围,又要把它当成数组一样使用就会出错的。。
我也不知道为什么,,,很久不看指针了,,太烦了。。。。
我现在改学JAVA...
我也不知道为什么,,,很久不看指针了,,太烦了。。。。
我现在改学JAVA...
#4
char *p="John"; //相当于const型的,值不能改变
#5
我知道这些改法,我是想知道为何不可运行。是const作怪吗?
#6
哦,是这样
#7
这和编译器有关。
http://www.csdn.com.cn/program/3727.htm
http://www.csdn.com.cn/program/3727.htm
#8
改为*(p+2)='a';
#9
不好意思,我试过上法,不行!
#10
char *p="John";//常量字符串,不能修改其内容。
#11
回复人: dongpy(51-->ARM) ( ) 信誉:100
可以改成用数组char p[]= "John";
可以改成用数组char p[]= "John";
#12
原因就是
回复人: dongpy(51-->ARM) ( ) 信誉:100 2005-03-09 09:43:00 得分: 0
char *p="John";//常量字符串,不能修改其内容。
回复人: dongpy(51-->ARM) ( ) 信誉:100 2005-03-09 09:43:00 得分: 0
char *p="John";//常量字符串,不能修改其内容。
#1
#include<iostream>
using namespace std;
int main(){
char p[]="John";
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
using namespace std;
int main(){
char p[]="John";
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
#2
#include<iostream>
using namespace std;
int main(){
char *p;
char a[100]="John";
p=a;
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
using namespace std;
int main(){
char *p;
char a[100]="John";
p=a;
p[2]='a';
for(int i=0;i<4;i++)
{cout<<p[i];}
return 0;
}
#3
你没有对指针限定范围,又要把它当成数组一样使用就会出错的。。
我也不知道为什么,,,很久不看指针了,,太烦了。。。。
我现在改学JAVA...
我也不知道为什么,,,很久不看指针了,,太烦了。。。。
我现在改学JAVA...
#4
char *p="John"; //相当于const型的,值不能改变
#5
我知道这些改法,我是想知道为何不可运行。是const作怪吗?
#6
哦,是这样
#7
这和编译器有关。
http://www.csdn.com.cn/program/3727.htm
http://www.csdn.com.cn/program/3727.htm
#8
改为*(p+2)='a';
#9
不好意思,我试过上法,不行!
#10
char *p="John";//常量字符串,不能修改其内容。
#11
回复人: dongpy(51-->ARM) ( ) 信誉:100
可以改成用数组char p[]= "John";
可以改成用数组char p[]= "John";
#12
原因就是
回复人: dongpy(51-->ARM) ( ) 信誉:100 2005-03-09 09:43:00 得分: 0
char *p="John";//常量字符串,不能修改其内容。
回复人: dongpy(51-->ARM) ( ) 信誉:100 2005-03-09 09:43:00 得分: 0
char *p="John";//常量字符串,不能修改其内容。