指针 再理解

本文写于 2019-12-05 23:37

有题如下:修改代码,使其用物种方法输出China

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>
 
main()
{                       
    int i = 0;
    char str[6] = {'C', 'h', 'i', 'n', 'a', '\0'}, str1[6] , *ptr, *ptr1, *ptr2 , str2[6];
    while (str[i] != '\0')
    {                       
        putchar(str[i]);
        i++;
    }
    ptr = str1;
    scanf("%s", ptr);
    puts(ptr);
    ptr1 = str;
    puts(ptr1);
    ptr2 = "China";
    puts(ptr2);
    strcpy(str2, "China");
    printf("%s", str2);
}          

其中:C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest

这个题做的时候问题在于,,我没有 想把str换成i,而是想用指针把字符串str[6]输出。然后想起一个问题。

对指针所指变量操作和操作指针地址怎么写呢。*str++;这个语句是报错的。str++;也是有问题的。但是*str= *str+1;这是不会报错的。但是网上有人给了 *str++这样的代码。

posted @ 2022-08-03 22:51  哒啉  阅读(21)  评论(0编辑  收藏  举报