在指向其他指针的指针值时分配只读位置错误?

时间:2015-08-19 20:12:35

标签: c

#include<conio.h>
#include<stdio.h>

int main(void)
{
    int i,j,temp;
    const char *str="geeksforgeeks";
    for(i=1;str[i];i++)
    {
        for(j=0;str[j];j++)
        {
            if(str[j]>str[j+1])
            {
                temp=str[j];
                str[j]=str[j+1];
                str[j+1]=temp;
            }       
         }
    }
    for(i=0;str[i];i++)
    {
        printf("%c",str[i]);
    }

当我尝试编写str[j]=str[j+1]时,不明白为什么会出现此错误? 我在做错了,请告诉我吗?

1 个答案:

答案 0 :(得分:1)

您将str声明为const char *,因此str[j]str[j+1]的类型为const char,这意味着无法将其分配到str

然而,除此之外,尝试修改字符串文字的内容会调用未定义的行为。

要使代码生效,请将char str[]="geeksforgeeks"; 的声明更改为

str

这会将char声明为使用字符串"geeksforgeeks"的内容初始化的 $('#magazine').turn({ display:'single' }); 数组;您可以根据自己的内容操纵此数组的内容。