免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: KBTiller
打印 上一主题 下一主题

特邀专家在线答疑——名不正则言不顺 一网打尽C语言基本概念 [复制链接]

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
141 [报告]
发表于 2011-05-04 11:33 |只看该作者
回复  mirnshi


    我认为“正确的代码”是有明确语义的,在标准中明确定义或编译器明确说明的
     ...
KBTiller 发表于 2011-04-28 19:33



仅仅依赖符合明确语义的代码,并不能组合成符合编译器、当前运行环境以及设计意图的程序。

例如,写C程序,都离不开内存处理。下面2种情况,都会书写成符合语义的代码,但都被认为是垃圾程序
1. 在栈上开大数组
2. malloc内存,却不释放,或者使用同一变量申请内存

论坛徽章:
0
142 [报告]
发表于 2011-05-04 13:17 |只看该作者
仅仅依赖符合明确语义的代码,并不能组合成符合编译器、当前运行环境以及设计意图的程序。

例如, ...
mirnshi 发表于 2011-05-04 11:33



    我们公司都很大程度上避免内存分配,一般能用数组的时候就用数组

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
143 [报告]
发表于 2011-05-04 23:34 |只看该作者
我们公司都很大程度上避免内存分配,一般能用数组的时候就用数组
aaaaa5aa 发表于 2011-05-04 13:17


你们公司的程序员这么害怕动态内存使用?

论坛徽章:
0
144 [报告]
发表于 2011-05-05 07:20 |只看该作者
仅仅依赖符合明确语义的代码,并不能组合成符合编译器、当前运行环境以及设计意图的程序。

例如,写C程序,都离不开内存处理。下面2种情况,都会书写成符合语义的代码,但都被认为是垃圾程序
1. 在栈上开大数组
2. malloc内存,却不释放,或者使用同一变量申请内存
mirnshi 发表于 2011-05-04 11:33

开大数组,我觉得应该由实现规定限制
第二个问题应该是另一个层次上的错误,类似于逻辑上的错误,不是语义层面的错误

论坛徽章:
0
145 [报告]
发表于 2011-05-05 08:53 |只看该作者
我认为C语言的精华是指针,同样如果指针使用不当给程序开发带来的后果也是相当严重的。
c指针是不错的书,目前还在学习中,坐等牛人指导

论坛徽章:
0
146 [报告]
发表于 2011-05-05 10:51 |只看该作者
指针用着很爽,特别像内核数据结构之间的指针转换

论坛徽章:
0
147 [报告]
发表于 2011-05-05 10:52 |只看该作者
指针用着很爽,像结构体之间的指针转换

论坛徽章:
0
148 [报告]
发表于 2011-05-05 10:53 |只看该作者
指针用着很爽,像结构体之间的指针转换

论坛徽章:
0
149 [报告]
发表于 2011-05-05 12:36 |只看该作者
  1. char AA[3] ={'a','b','c'};
复制代码
AA 是代表了这个数组(AA是数组类型)还是&AA是代表了这个数组?看到过有人说这么理解,有人说那样理解?哪种方式是对的呀?
谢谢解惑。

论坛徽章:
0
150 [报告]
发表于 2011-05-05 12:54 |只看该作者
回复 149# amoyppa


    AA作左值时代表这个数组,类型  char [3] , 作为右值时AA的类型是 char *
   &AA是指向这种数组的指针,类型 char (*)[3]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP