指针 再理解
本文写于 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++这样的代码。