Advertisement

C/C++字符指针数组循环赋值处理问题

阅读量:

前言:打算使用字符指针数组char* strArr[10];来存放若干字符串,并发现利用while循环进行赋值操作会导致系统出现错误提示。

先看一段代码:

复制代码
    main(){
    char *strArr[5];//存储字符串的数组
    char str[10];
    int i = 0;
    char *p = NULL;
    while (i<5){//循环赋值
        gets(str);
        p = str;
        strArr[i] = p;
        i++;
    }
    printf("result:\t");
    for(i=0;i<5;i++){//打印结果
        printf("%s\t",strArr[0]);
    }
    }

我们输入字符串查看结果:

在这里插入图片描述

发现结果都是最后一个输入的字符串!!!;

重点来了,字符指针 数组!

因为这是一个单向遍历的过程,在每次循环中,指针p都会指向当前处理的str变量。最终所有元素都将转换

全部评论 (0)

还没有任何评论哟~