注册 登录
编程论坛 C语言论坛

函数返回结构

LGD335060087 发布于 2020-03-26 11:50, 1630 次点击
#include<stdio.h>
struct date{
    int day;
    int month;
    int year;
};
struct date get(void);
int main(){
    struct date today={0,0,0};
    today=get();
    printf("%d-%d-%d",today.year,today.month,today.day);
    return 0;
}
struct date get(void){
    struct date d;
    printf("请输入:");
    scanf("%d %d %d",d.year,d.month,d.day);
    return (struct date)d;
}
为什么返回不了小白求解?
7 回复
#2
lin51616782020-03-26 11:54
scanf漏了&
#3
forever742020-03-26 11:55
scanf需要取地址。
#4
LGD3350600872020-03-26 11:58
🆗
#5
飞天大烧卖2020-03-26 12:06
回复 楼主 LGD335060087
函数不能返回一个指向栈区的指针
#6
lin51616782020-03-26 12:13
回复 5楼 飞天大烧卖
不是
返回的是一个完整的结构体
#7
飞天大烧卖2020-03-28 11:15
回复 6楼 lin5161678

#8
lin51616782020-03-28 11:59
在C语言中
强制类型转换
只能 从标量类型转换到标量类型(整型 浮点 指针)
或者 从任意类型转换到void

这里从结构体类型转换到结构体类型是错误的
1