指针和字符数组的应用,用五种方法输出字符串“China”。

指针和字符数组的应用,用五种方法输出字符串“China”。请改正程序中的错误,使它能得出正确的结果。
#include 

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 
#include

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, 所以这种表达式一样是非法的,编译的时候会报错。
*/

你可能感兴趣的:(指针,字符串操作,笔记,c语言)