关于C语言中结构体的小问题
我把程序检查了两三遍还是没发现有什么问题,虽然说是warning,但输出结果不如人意{:10_266:} {:10_266:} 问题大了去了还没有学到指针吧。
没学到指针,何不就直接到主函数赋值。
ba21 发表于 2018-4-2 19:49
问题大了去了
还没有学到指针吧。
没学到指针,何不就直接到主函数赋值。
Emmmm,指针学过了,你说的我能理解,另外我参考了一下甲鱼老师的课件(无视乱码{:10_250:} {:10_250:} ),感觉还是没什么问题,请问我应该怎么改{:10_254:} {:10_254:} . 把代码贴出来~包括你的结构体定义~ 风过无痕丶 发表于 2018-4-2 20:34
把代码贴出来~包括你的结构体定义~
#include<stdio.h>
struct Book
{
float price;
};
struct Book Input(struct Book b1)
{
scanf("%f",&b1.price);
return b1;
}
void Output(struct Book b1)
{
printf("%f",b1);
}
int main()
{
struct Book b1;
b1 = Input(b1);
Output(b1);
return 0;
}
这是打出来的代码(如果图片不能正常显示的话){:10_254:}
编译器提示warning C4700: local variable 'b1' used without having been initialized(意思应该是b1未被初始化定义吧{:10_266:} ).
粤南靓仔 发表于 2018-4-2 20:24
Emmmm,指针学过了,你说的我能理解,另外我参考了一下甲鱼老师的课件(无视乱码) ...
不用改,编译器只是警告你没有初始化。
实在看不下去,你可以:
#include <stdio.h>
struct Book
{
float price;
};
struct Book Input(struct Book b1)
{
scanf("%f", &b1.price);
return b1;
}
void Output(struct Book b1)
{
printf("%f\n", b1.price);
}
int main(void)
{
struct Book b1;
b1.price = 0;
b1 = Input(b1);
Output(b1);
return 0;
} ba21 发表于 2018-4-2 20:50
不用改,编译器只是警告你没有初始化。
实在看不下去,你可以:
这么一改的确没问题了,但我还是很好奇为什么编译器说我未初始化,难道要给b1赋初值吗{:10_266:}
另外我将甲鱼老师的代码复制到了VC++6.0下面发现也是类似的报错{:10_250:}
甲鱼老师好像是在Linux下编程的,我觉得可能是编程器不同的锅.{:10_269:}{:10_269:}
页:
[1]