24小时热门版块排行榜    

查看: 1162  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

FWei灵

铜虫 (小有名气)

[求助] 结构体

#include
typedef
struct{
char * bookName,*publisher;
float price;
}BOOK;
int main()
{
BOOK cBook,mathBook;
BOOK *p;
p=&cBook;
p->bookName="c语言程序设计";     
p->publisher"清华大学出版社";
p->price=26.9f;
printf("%s(%s)%0.2f\n",p->bookName,p->publisher,p->price);
p=&mathBook;
p->bookName="高等数学";
p->publisher"高等教育出版社";
p->price=32.5f;
printf("%s(%s)%0.2f\n",p->bookName,p->publisher,p->price);
return 0;

}
这个程序中, p->price=26.9f;和 p->price=32.5f;中的f是怎么回事???


请各位大师解释一下!!

                                                                             谢咯!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

引用回帖:
12楼: Originally posted by shouhangwn at 2012-02-21 12:57:16:
指针的值可以改变,可是初始化也得申请空间吧?是不是

不知道你所说的初始化是指谁的初始化?

只读段本来就是在程序中占有空间的,只不过那个段“只读”罢了~

PS:如果你用的是gcc编译的话(没试过cl+link不知道VC的编译器是否有类似的功能),还可以用编译脚本强行把只读段弄成非只读属性=.=稍微扯远了

再PS,一个好玩的例子:
CODE:
#include
#include

int main(){
        const char *p = "abc";
        const char *q = "abc";

        printf("p=%p, q=%p\n", p, q);

        return 0;
}

可能有助于说明只读段的一些问题
14楼2012-02-21 23:34:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

文俊点点

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
余泽成(金币+1): 谢谢参与应助! 2011-12-29 21:21:10
f表示是浮点数,是浮点数的控制符。lf是double的控制符。
这是你所拥有的时间·····这是你所能改变的生活·········
2楼2011-12-29 08:48:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
余泽成(金币+1): 谢谢参与应助! 2011-12-29 21:21:27
ls正解,不用f的话,那个小数就表示为double型的
3楼2011-12-29 09:07:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微尘、梦想

木虫 (知名作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 辛苦了! 2011-12-29 21:22:07
FWei灵(金币+1): 2012-03-04 00:29:40
就是画蛇添足而已,可能是从别的语言里面带过来的毛病,因为有些语言是需要这样写的;又或者是书太老啦,可能是当时C语言还没有标准化,为了可以在不同的编译器中正确运行,才加上的;又或者写书的人还没有跟上时代的变化,使用的是旧习惯,解释有许多种,一句话就是,现在不需要~
任风云变幻,我笑对人生!
4楼2011-12-29 10:19:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见