张三ccccccc 发表于 2021-8-31 13:09:35

指针与字符串,大佬们帮忙看看为什么没有输出结果

//多个字符串逆序输出
#include "stdio.h"
#include "string.h"
int main ()
{
        char *str = {"china","is","exceedingly","powerful","country"};//定义一个数组元素
        char *(*p)=&str;         //定义一个指针去指向数组的首地址
        int i,j,k,length;
        char temp;
        //逆序存放
        for(i=0;i<5;i++)
        {
       
       //计算每一个字符串的长度
                k = strlen(str)-1;
                for(j=0;j<k;j++,k--)//读取字符串中的字符,并交换顺序
                {
                        temp = (*p);
                        (*p) = (*p);
                        (*p) = temp;
                }
       }
       printf("The invert string is :\n");
       for(i=0;i<5;i++)
       {                               //字符串逆序输出
                       for(j=0;(*p)!='\0';j++)
                       {
                     printf("%c",(*p));
                }
                printf("\n");
       }
        return 0;
}

万千只cnm 发表于 2021-8-31 14:02:10

for(j=0;(*p)!='\0';j++)
你j早越界了

张三ccccccc 发表于 2021-8-31 14:31:14

万千只cnm 发表于 2021-8-31 14:02
你j早越界了

emmmm,不是太懂,应该怎么改 啊

万千只cnm 发表于 2021-8-31 18:56:48

张三ccccccc 发表于 2021-8-31 14:31
emmmm,不是太懂,应该怎么改 啊

哦 我知道了
你这是指向常量的指针
指针数组,里面的字符串放在静态区 ,相当于const char
不能改变字符,赋值当然也会错
页: [1]
查看完整版本: 指针与字符串,大佬们帮忙看看为什么没有输出结果