| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:c指向结构体数组的指针
只看楼主 加入收藏
hdshdzh
Rank: 2
等 级:论坛游民
帖 子:77
专家分:11
注 册:2010-5-13
结帖率:92.31%
收藏
已结贴  问题点数:6 回复次数:5 
c指向结构体数组的指针
struct student
{
 int num;
char name[20];
char sex;
int age;
};
struct student stu[3]={{99001,"li lin",'m',18},{99002,"zhang fan",'M',19},{99003,"wang min",'F',20}};
main()
{
struct student*p;
printf("NO.   Name   sex   age\n");
for(p=stu;p<stu+3;p++)
printf("%5d%-20s%2c%4d\n",p->num,p->name,p->sex,p->age);
}这样的程序运行不到想要的结果,99001 99002 99003显示不出来,在前面加long int num也不行,怎么样做才能得到这些长编号。谁能帮我理解这些问题,谢谢!

[ 本帖最后由 hdshdzh 于 2010-5-20 08:29 编辑 ]
搜索更多相关主题的帖子: 结构体 指针 
2010-05-20 07:35
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4252
注 册:2007-12-27
收藏
得分:3 
如果你用了long int num
那么输出的时候相应的位置上就应该是%5ld而不是%5d
注意那个是小写的L,不是数字1哦

最近我废话比较多,请多包涵

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-05-20 09:32
九品绅士
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:199
注 册:2010-3-26
收藏
得分:0 
我在VC上面运行没问题呀~~~
2010-05-20 10:23
幽园香客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:231
专家分:142
注 册:2006-2-27
收藏
得分:0 
考虑到ID号不会为负,可以将类型int更改为unsigned int

做个有用的人!
2010-05-20 11:43
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:3 
     int型变量在TC中占用两个字节,它的范围为(-32768~32767),你的那些数在TC下会溢出,你看到的是乱码,但是在VC中,int占四个字节,你的那些数在它的范围之内,所以你在VC中能看到正确的结果。
     上面那位仁兄说的对,你要想在TC下输出正确的结果,就得把int改为long,并且在printf中将%5d改为%5ld,因为%l用于长型数据的输出。你用%d电脑会以为你是想把他以整数形式输出,你最后还是不能得到想看到的结果。

我的博客  http://blog..cn/daocaoren020
2010-05-20 11:47
幽园香客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:231
专家分:142
注 册:2006-2-27
收藏
得分:0 
以下是引用ww稻草人在2010-5-20 11:47:09的发言:

     int型变量在TC中占用两个字节,它的范围为(-32768~32767),你的那些数在TC下会溢出,你看到的是乱码,但是在VC中,int占四个字节,你的那些数在它的范围之内,所以你在VC中能看到正确的结果。
     上面那位仁兄说的对,你要想在TC下输出正确的结果,就得把int改为long,并且在printf中将%5d改为%5ld,因为%l用于长型数据的输出。你用%d电脑会以为你是想把他以整数形式输出,你最后还是不能得到想看到的结果。
楼上的说得很明白。不同环境下,int所占字节数不一样,能表示的范围也不同。

做个有用的人!
2010-05-20 13:07
快速回复:c指向结构体数组的指针
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019916 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved