几个C语言问题,请教高手详细解释

gxuxcx81 2007-06-27 02:10:29

1.
void fun5()
{
int array[]={1,3,5,7,9};
int *p=array;
int m,i,j;
m=*(p+1)*(p+1)[1];
i=*p++;
j=*p;
printf("fun5 m=%d\ni=%d\nj=%d\n",m,i,j);

}
//这条语句没有理解到他表达的意思;
若是*(p+1) * (p+1)[] ,那么(p+1)[]表达什么呀,p+1也应该指向3吧
没有搞懂,请高手们指点下


2.
void fun2()
{
struct Ta{
unsigned ba:1;
unsigned bb:4;
unsigned bc:5;
unsigned bd:2;
};

struct Tb{
unsigned char da;
unsigned char db;
};

union Tu{
struct Ta *sa;
struct Tb *sb;
};

union Tu Tdata;
struct Ta *pTa;
struct Tb *pTb;

Tdata.sb->da=0x10;
Tdata.sb->db=0xF0;
pTa=Tdata.sa;
pTa->ba=1;
pTa->bc=2;
pTa->bd=3;
pTb=Tdata.sb;
printf("0x%x,0x%x,0x%x",pTb->da,pTb->db,pTa->bb);
}

请问下这Ta是什么结构体
这题怎么解?

3.
void fun3()
{
char *p1=(char*)1024;
char *p2;
p2=p1;
*p2=55;
printf("%d,%d",*p1,p2);
}

执行到这里报错*p2=55;


...全文
1573 103 打赏 收藏 转发到动态 举报
写回复
用AI写文章
103 条回复
切换为时间正序
请发表友善的回复…
发表回复
downloads_sf 2007-07-06
  • 打赏
  • 举报
回复
有意见?
kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
当然你要是时间很多有空研究TC对比一下没人认为有错。。
kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
当然可以,原理通了什么都不是问题了,不过现在花精神在TC上还不如花精神在VC6.0上,现在谁还用TC啊,一样是想研究想通原理,选新的环境研究不是更好么。而且你熟悉了TC可不等于熟悉了VC,将来你是靠TC吃饭还是靠VC吃饭?所有语言说穿了就是工具,关键是要掌握方法,还有最大的区别可能就是熟练度不同而已。懂的多了环境习惯了窒碍就少熟练度和效率就高,同样一个东西有人1小时出来了有人3天出来了,那3天出来的人也不是不会,都一样能出来你说头要哪个?
downloads_sf 2007-07-05
  • 打赏
  • 举报
回复
liqiang123abc() ]

就我相信,你又忽悠我
我本来想以后有问题就去找卖烤地瓜的呢
上CSDN还要给网费
downloads_sf 2007-07-05
  • 打赏
  • 举报
回复
kogai_Sai()

兄台呀
不可能你现在用32位机,就不去了解老的技术,微机原理了吧;
我得搞清楚那些是编译环境影响的问题,那些是语言的问题的呀
那样编程更清楚些吧


kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
呵呵,当然不相信拉,开个玩笑而已。怎么?刚才一直让人和你一起卖地瓜现在有人找上门了倒不肯了呀,呵呵。既然不想改行,想继续当高手请帮我回答问题吧,哈哈,谢谢。
liqiang123abc 2007-07-05
  • 打赏
  • 举报
回复
哦 你真相信
我是卖拷地瓜的么?
kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
楼主还用TC?..都什么时代了,建议你用vc6.0或其他更新的编译器吧。你理解上的误差很多来源于过时的编译器和用过时的编译器写出来的书,谭浩强那本书是好书,C内容很全借鉴很好,可是过时了,我就记得他那本书上int型是16位的,而现在vc6.0等都是32位的,将来也许还会变。再送你一句话:“好读书,不求甚解”,别死抠书,你现在理解的只是你现在水平上的那层东西,概念不太懂就放过去,将来你回头再看一遍你会发现原来的问题已经不是问题!而且会有很多很重要的知识隐藏在边边角角上是你以前忽略的或是程度不够没能理解的。我以前和你是一样的,死抠书纯理论以为懂了很高兴,其实啥都不懂,实践中会出现很多问题,这些问题不是看书就能解决的也不是书上能得到答案的,不实践看多少遍书都没有用,时间是会让很多东西淡忘的,这是我过来的教训,请不要重蹈我的覆辙呀。

ps:那个卖地瓜的哥们,现在IT业不景气了啊,大部分人都是软件民工,赚的钱估计还不如卖烤地瓜的赚的多呢!呵呵。可不能小看了那些在路边上摆摊卖哈密瓜,西瓜,地瓜的,能忽悠好多钱呢!只是不屑去干而已,以后如果你想卖找我啊,我和你一起开个连锁,合伙卖烤地瓜。:)
kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
摩托罗拉序或是小印第安序的区别是只局限在RGBA的读入顺序上,还是只要系统不一样,数据的存储方式上都有这个区别,这点我不太能明白。还有上面提到的堆和栈问题,哪位达人能不吝赐教下,感激涕零不知所云。
downloads_sf 2007-07-05
  • 打赏
  • 举报
回复
还有兄台有问题没有解决呀
很难得认识各位
大家继续交流了,我也好向各位请教,学习了
结贴不就是分嘛,如果可以增加分数,我就去加分去
downloads_sf 2007-07-05
  • 打赏
  • 举报
回复
大家好,我是gxuxcx81(善良的狼)
由于CSDN只允许一个帖子只能回复30次
所以我只能新注册一个用户向各位高手学习,请教

gxuxcx81 2007-07-05
  • 打赏
  • 举报
回复
终于搞明白了
我原来看那本谭浩强的书,是网上下的,不知道是那个版本;

最后多找了几个资料,确定了
2) 由于位域不允许跨两个存储单元
存储单元的长度是由编译器来决定的
VC6.0是两个字节,现在证明了
可能TC是一个字节吧,手上没有TC没有验证

看来很多因素是由编译器来决定的


kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
等等,不好意思,来晚啦,还没回答我的问题呢!呵呵。
堆和栈该是不同的概念吧,栈是后入先出,堆也是吗?
不知道堆的存储方式是不是跟栈一样,还是有所不同?
这个程序结构体是存在栈里的,不是存在堆里的吧?
还有,系统的存储方式是跟摩托罗拉序或是小印第安序有关吗?正常情况下都是摩托罗拉序吧?
哪位能给解释一下吗?谢谢:)
liqiang123abc 2007-07-05
  • 打赏
  • 举报
回复
提醒楼主
结帖
gxuxcx81 2007-07-05
  • 打赏
  • 举报
回复
哈哈
liqiang123abc 2007-07-05
  • 打赏
  • 举报
回复
哼哼
对于这样的结果我早料到了
gxlian 2007-07-05
  • 打赏
  • 举报
回复
讨厌,我恨你.
想象:把你扔到天上,掉下来,再扔到天上,再掉下来,再扔到天上,再掉下来
舒服了...
好了,现在公平了
葫芦鬼 2007-07-05
  • 打赏
  • 举报
回复
mark
kogai_Sai 2007-07-05
  • 打赏
  • 举报
回复
如果高人再不出现,请楼主结贴了吧,都快100楼了。。我那破问题估计只能招bs,哈哈。到csdn上逛了一圈突然发现自己真的很菜,比想象中的还菜,没法混了,还是回家种地瓜吧。:)
liqiang123abc 2007-07-04
  • 打赏
  • 举报
回复
人家gxlian() 比你谦虚多了
也不象楼主死抠书上的东西

一个理论 是肯定有局限性的
牛顿奠定了近代物理学的基础
但是 牛顿的定理也有时代的局限性

牛顿尚且如此
更别提 谭浩强了

电脑行业是一个
知识翻新换代很快的行业
几个月前正确的东西
拿到现在十之八九就过时了
明白不
看样子
你将来
要跟我一样卖烤地瓜





加载更多回复(83)
一、C语言自我YY1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。4)、C语言是面向过程语言,C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言C语言是目前世界上流行、使用最广泛的高级程序设计语言6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!
C语言是一门广泛应用于系统编程、嵌入式软件和高性能应用开发的高级编程语言。本课程旨在向你介绍C语言的基本概念、语法和编程技巧,使你能够掌握C语言的核心知识,并能够用C语言编写简单到中等复杂程度的程序。课程针对0基础初学者,所以课程会由浅入深,由表及里的探索C语言知识框架,慢慢触及C语言本质,课程结构先由简单程序引入,然后拆分程序各个细节,让你逐渐掌握C语言编程的精髓。也会讲解C语言编译过程,怎样将人类描述的语言让计算机能够识别并按我们的意愿运行。C语言程序怎样运行也会详细介绍,了解程序由静到动的过程。课程注重基础理论与实践结合,在重点关注C语言的基础理论知识的同时,我们会结合大量的实际编程练习,对每个重要的知识点和易错的地方都有代码演示并查看程序运行结果,深入理解C语言的运作原理。课程中一半内容是理论知识的讲解,另外一半是代码实操。课程由本人全部从0开始编写,从课程架构思考,内容组织,难易程度,章节划分,都融入了本人对C语言的思考,几乎全是干货,如果你渴望成为一名优秀的C语言编程者,那么不要犹豫!欢迎报名参加我们的课程,让我们一起踏上编程的旅程,共同学习和进步!课程源码:https://gitee.com/sliaowalker/c-language-programming

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧