一只平凡的骡子 2015-11-30 12:55 采纳率: 50%
浏览 1477
已采纳

C 语言基础问题 指针素组 为什么指针p所指向地址会被改变?

#include

char *p[] = {"to","yes","is ok","how do you do ?","holle"};

int main(int argc,char* argv[])
{
int a[5] = {0};
int i = 0;
int j = 0;
char ** t;

t = p;  
    for(i = 0; i<5;i++)
{
    printf("%x \t",p[i]);
}

for(i = 0; i<5; i++)
{
    while( *t[i] != '\0')
    {

        t[i]++;

        a[i]++;
    }
}

for(i =0 ;i<5;i++)
{
    printf("%d \n",a[i]);
}

    for(i = 0; i<5;i++)
{
    printf("%x \t",p[i]);
}

return 0;

}图片说明

  • 写回答

4条回答 默认 最新

  • ysuwood 2015-11-30 13:23
    关注
     #include<stdio.h>
    char *p[] = {"to","yes","is ok","how do you do ?","holle"};
    int main(int argc,char* argv[])
    {
        int a[5] = {0};
        int i = 0;
        int j = 0;
        char * t;//修改
        for(i = 0; i<5;i++)
        {
            printf("%x \t",p[i]);
        }
        printf("\n");
        for(i = 0; i<5; i++)
        {
            t=p[i];//修改
            while( *t != '\0')//修改
            {
                t++;//修改
                a[i]++;
            }
        }
    
        for(i =0 ;i<5;i++)
        {
            printf("%d \n",a[i]);
        }
    
        for(i = 0; i<5;i++)
        {
            printf("%x \t",p[i]);
        }
        printf("\n");
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?