有以下程序 #include <stdio.h> #include <string.h> struct S { char name[10]; }; void change(struct S *data, int value) {

admin2020-06-16  40

问题 有以下程序
#include   <stdio.h>
#include   <string.h>
struct S
{
    char  name[10];
};
void change(struct S  *data, int  value)
{
    strcpy(data->name, "#");
    value = 6;
}
main( )
{
    struct S  input;
    int  num = 3;
    strcpy(input.name, "OK");
    change(&input, num);
    printf("%s,%d\n", input.name, num);
}
程序运行后的输出结果是

选项 A、OK,6
B、#,6   
C、OK,3
D、#,3  

答案D

解析 声明结构类型S中有一个字符数组name,在main函数中,定义了一个结构变量input,为input中成员name初始化"ok"后,调用change()函数。chang()执行功能是把"#"赋值给name,由于change()函数的形参为结构体指针,因此change函数改变形参指针data指向的name值的同时,也改变了实参input的成员name值;而形参value为整型变量,change函数改变value值的同时不影响实参num,所以输出为#,3。答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/vs3p777K
0

最新回复(0)