【发布时间】:2014-11-24 12:36:42
【问题描述】:
我有这个程序打算测试两件事:
- 一旦分配,一个字符串就不能再分配给另一个字符串。
- 但是,两个 char 指针可以指向同一个字符串。
// 程序-
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char str[]="hello";
char str2[10];
int i=0;
char *s="Good";
char *p;
//error
//str=str2;
printf("String str2: %s\n", str);
//no error
p=s;
//printf("String pointed to by p: %s\n", *p );
while(*s!='\0')
{
printf("%c", s[i]);
s++;
i++;
}
printf("\n");
return 0;
}
当我打印出内容“Good”时,我得到了一个垃圾值。其他任何词都一样。 while 循环中出现问题了吗?
【问题讨论】:
-
s++; i++;移动重复。删除i++; -
为什么需要
char *p? -
不相关,但你有一些未使用的变量