每周小题--函数传值

2019-11-24 01:02:06 浏览数 (1)

来源:公众号【编程珠玑】

作者:守望先生

ID:shouwangxiansheng

下面代码输出结果是什么?

代码语言:javascript复制
//来源:公众号【编程珠玑】#include<stdio.h>
void swap_int(int a , int b)
{
    int temp = a;
    a = b;
    b = temp;
}
void swap_str(char* a , char* b)
{
    char* temp = a;
    a = b;
    b = temp;
}

int main(void)
{
    int a = 10;
    int b = 5;
    char* str_a = "hello world";
    char* str_b = "world hello";

    swap_int(a , b);
    swap_str(str_a , str_b);
    printf("%d,%dn",a,b);
    printf("%s,%sn",str_a,str_b);
    return 0;
}

A:

代码语言:javascript复制
5,10                                                                                                                                           
hello world,world hello  

B:

代码语言:javascript复制
5,10                                                                                                                                          
world hello,hello world

C:

代码语言:javascript复制
10,5                                                                                                                                           
world hello,hello world 

D:

代码语言:javascript复制
10,5                                                                                                                                           
hello world,world hello  

如果要交换a和b的内容,以及str_a和str_b指向的字符串,应该如何修改?

本文问题答案可在《函数参数的传值和传指针有什么区别?》中寻找并加深理解。

0 人点赞