我有这个计划,旨在测试两件事情:如何打印出由char指针指向的字符串?
- 一旦分配,一个字符串不能被分配到另一个字符串。
- 但是,两个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;
}
我得到一个垃圾值,当我打印出来的内容 “好”。任何其他词都一样。 while循环出错了吗?字符串Good
在在第一次迭代,i == 0
和s
点G
:
's ++;我++;'移动是重复的。删除'i ++;' – BLUEPIXY 2014-11-24 12:42:03
你为什么需要'char * p'? – Gopi 2014-11-24 12:49:45
无关,但您有一些未使用的变量 – 2014-11-24 14:30:47