void swap(char a, char b)
{
char c;
c=a;
a=b;
b=c;
}

int main()
{
char *a = “GOBLIN!”
char *b ;
b = a + strlen(a)-3;
printf(“a: %c\n”, a

展开全部
收起
5回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Natalie

    14人对此回答表示赞同

    a: L //a[3]为L
    b: GOBLIN //a
    c: GOBLIN // swap无效
    d:I //b = a + 4 因为是char* 所以相当于a[4]
    d:1 // *(b++) = '\0' 即a[4]为‘\0’,b为a[5]
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Brayden

    12人对此回答表示赞同

    a:L
    b:GOBLIN!
    c:GOBLIN!
    d:错误语句,若是printf(“d: %s\n”, b);则输出IN!。
    d:前一句*(b++)='\0';非法语句,常字符串不能改改写。若能改写,则本结果是2.
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Ian

    9人对此回答表示赞同

    void swap(char a, char b) //此处的a、b是局部变量,没法回传对调结果,还是应该用指针改为
    {
    char c; //void swap(char *a, char *b)
    c=*a;
    *a=*b;
    *b=c;
    }

    int main()
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Linda林晓达

    4人对此回答表示赞同

    函数swap(char a, char b)应该是用来交换字符顺序的, 函数中先定义了一个临时变量c,然后通过C,改变形参a,b的值,之后打印出各个结果
    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 刘梦晖

    4人对此回答表示赞同

    输出:
    a:L
    b:GOBLIN!
    c:L(这里输出为L,这是因为swap(a,b)函数传参时是把实参复制了一份传进去了,所以原始的实参的值是不会改变的,改变的只是复制的那一份)。
    d:这个你确定你没有输错?%s是输出字符串的,但是*b应该是一个字符,如果么有*号,那么应该是

    IN!
    d:这行代码应该是通不过编译的,字符串常量的值不能被修改。
    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部