| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1373 人关注过本帖
标题:10进制转换成十六进制 有问题!
只看楼主 加入收藏
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
 问题点数:0 回复次数:4 
10进制转换成十六进制 有问题!
还有一些函数 就只说我不懂的
typedef srtuck
{
datatype1 data[maxsize];
int top;
}seqstack;
/*顺序栈初始化操作函数*/
void initstack(seqstack *s)
{
int i;
for(i=0;i<maxsize;i++)
s->data[i]='\0';
s->top=0;
}
/*转换成十六进制,函数*/
void d_to_h(unsigned x)
{
int y;
char ch;
seqstack stack,*s
s=&stack;
initstack(s);
push(s,'#');
while(x!=0)
{ y=x%16;
if(y<10)
push(s,y)
else
{ switch(y)
{ casr 10 :push(s,'A');break;
casr 11 :push(s,'B');break;
casr 12 :push(s,'C');break;
casr 13 :push(s,'D');break;
casr 14 :push(s,'E');break;
casr 15 :push(s,'F');
}
}
x=x/16;
}
while((ch=gettop(s))!='#')
{
ch=pop(s);
if(ch<10)
printf("%d",ch);
else
printf("%c",ch);
}
}
=========================================
seqstack stack,*s
s=&stack;
initstack(s);
就是想不明白这三个语句是什么意思,为什么要这样。
大家来帮我释疑吧
搜索更多相关主题的帖子: 进制 
2007-11-08 13:48
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
得分:0 
seqstack stack,*s; 产生两个实例?还是只是声明的?
s=&stack; s已经是指向seqstack的地址了,&stack也属于seqstack类型的地址 不知s=&stack;是何目的。
initstack(s); 直接seqstack *s;然后initstack(*s);这样行不行?

责人之心责己 宽己之心宽人
2007-11-08 14:11
qq95620412
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-11-5
收藏
得分:0 
seqstack stack,*s;
//产生两个实例?还是只是声明的?
//seqstack stach;告诉系统 分配内存空间给stack变量 ,seqstack *s;告诉系统 分配一个指针变量 s,该变量指向seqstack类型
s=&stack;
//s已经是指向seqstack的地址了,&stack也属于seqstack类型的地址 不知s=&stack;是何目的。
//上一句执行完毕后 s还是一个野指针,它并没有指向确定的内存单元,
//s=&stack; 的目的是使 s指向系统为stack变量分配的空间,即 s指向seqstack类型的变量stack的地址
initstack(s); //直接seqstack *s;然后initstack(*s);这样行不行?
//sorry,不行。因为这样的话s是一个野指针。对野指针进行赋值操作会引起非法错误。
//关于野指针,你可以参考相关书籍。
//要省懒的话可以写成如下的形式:
//
//seqstack stack, *s=&stack;
//initstack(s);

[此贴子已经被作者于2007-11-8 21:26:19编辑过]


人生路难走,转眼已白头。伤心望远山,黯然下小楼。
2007-11-08 21:23
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 

楼上很清楚了


方寸之内,剖天下; 方坛之内,析自我;
2007-11-08 22:24
一刀客
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2007-10-26
收藏
得分:0 
回复:(qq95620412) seqstack stack,*s; ...
太感谢了~~~~

责人之心责己 宽己之心宽人
2007-11-09 13:10
快速回复:10进制转换成十六进制 有问题!
数据加载中...
 
   



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

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