我有這個計劃,旨在測試兩件事情:如何打印出由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