本帖最后由 mxwawaawxm 于 2020-2-13 19:28 编辑
源代码如下
定义了一个字符串数组string
再定义二级指针str_point指向字符串数组string
指针偏移str_point++;
遍历第2个字符串的每个字符,isdigit(**str_point)判断字符是否数字字符。如果不是数字字符,跳出循环
我在遍历前,打印了第2个字符串printf("%s\n", *str_point);
能全部显示"678g90"
在遍历后,再以同样的代码打印printf("%s\n", *str_point);
只能打印后半段g90
str_point二级指针,我只移动了一次,为什么会出现这种情况
中间遍历,偏移的是(*str_point)++
[C] 纯文本查看 复制代码 #include <stdio.h>
#include <ctype.h>
int main(int argc, const char *argv[])
{
char *string[] = {"12345", "678g90"};
char **str_point = string;
str_point++;
printf("%s\n", *str_point);
while (**str_point!='\0') {
printf("%c\n", **str_point);
if (!isdigit(**str_point)) {
break;
}
(*str_point)++;
}
printf("*str_point = %s\n", *str_point);
return 0;
} |