永发信息网

C语言中用指针声明字符串在部分系统下运行有问题?

答案:1  悬赏:40  手机版
解决时间 2021-03-05 00:14
  • 提问者网友:寂寞梧桐
  • 2021-03-04 08:25
C语言中用指针声明字符串在部分系统下运行有问题?
最佳答案
  • 五星知识达人网友:逐風
  • 2021-03-04 08:32

你对字符串赋值的理解有一些问题,且str[0]='F';这个赋值并不合法。char *str=Hello World;声明的是一个字符串常量,指针变量str指向Hello World这个字符串的地址。那么很显然str[0]指向的是字符串常量的第一个字符的地址,由于这个字符串是个常量,因此企图用字符'F'替代'H'是不合法的。如果希望用字符串F替代“Hello World”,只需要用如下方法赋值:str = F;如果以char str[20] = Hello World;的方式声明str,则str是常指针,即无法使用上述语句对str赋值,但str[0]='F';合法,因为此时str[]是个字符数组,在语义上和char * str不同。注意这些微妙的区别。能在TC下编译并运行通过只能说明这个TC编译器未严格遵照ANSI C标准,gcc的结果是正确的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯