指针和字符数组的应用,用五种方法输出字符串“China”。请改正程序中的错误,使它能得出正确的结果。 #include <stdio.h> main() { int i = 0; char str[6] = {'C', 'h', 'i', 'n', 'a', '\0'}, str1[6] , *ptr, *ptr1, *ptr2 , str2[5]; while (str[i] != '\0') { putchar(*str); str++; } scanf("%s", ptr); puts(ptr); ptr1 = str; puts(ptr1); ptr2 = "China"; puts(ptr2); str2 = "China"; printf("%s", str2); }
#include <stdio.h>
#include<string.h>
int main()
{
char str[6] = {'C', 'h', 'i', 'n', 'a', '\0'}, str1[6] , *ptr, *ptr1, *ptr2 , str2[5];
char *i =str;//指针一定要初始化!
while (*i != '\0')
{
putchar(*i);
i++;
}
ptr = str1;//指针一定要初始化!
scanf("%s", ptr);
puts(ptr);
ptr1 = str;
puts(ptr1);
ptr2 = "China";
puts(ptr2);
strcpy(str2,"China");
printf("%s", str2);
return 0;
}
/*
当a为数组名时,可以当做一维指针进行取值运算,但是由于数组名等同于常量指针,所以不可以对数组名进行赋值运算。
所以当a为数组时, a=任意表达式 这样的计算都是非法的。
而a++,等效于a=a+1, 所以这种表达式一样是非法的,编译的时候会报错。
*/