免费注册 查看新帖 |

Chinaunix

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

[C] 问一道关于指针的面试题 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2011-10-16 21:02 |只看该作者
本帖最后由 x5miao 于 2011-10-16 21:03 编辑

回复 30# wangzhen11aaa


    如果按照出题人的理解,他要的差不多就是你运行的那个结果。我们说的错误是指出题人给出的那个程序本身就有问题,同时程序的输出结果是系统相关的(包括编译系统,操作系统以及计算机本身的体系架构)而不确定的

论坛徽章:
0
32 [报告]
发表于 2011-10-16 21:12 |只看该作者
本帖最后由 wangzhen11aaa 于 2011-10-16 21:15 编辑

回复 31# x5miao

(gdb) p &t[1]
$2 = (char **) 0x80496dc
(gdb) p &t[0]                      /*这里差值是4字节的是存储char *类型的。*/
$3 = (char **) 0x80496d8
(gdb) &t[2]
Undefined command: "".  Try "help".
(gdb) p &[2]
A syntax error in expression, near `[2]'.
(gdb) p &t[2]



(gdb) p t[1]
$5 = 0x804850d "PT_DATA_CONN_CLOSE"  /*这里是实际存储的那个字符串的值*/
(gdb) p t[2]
$6 = 0x8048520 "PT_DATA_SERV"
(gdb) p t
$7 = (char **) 0x80496d8
(gdb) p t[0]
$8 = 0x8048500 "PT_DATA_COMM"
呵呵,好像明白你们说的重点了。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
33 [报告]
发表于 2011-10-16 21:17 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
34 [报告]
发表于 2011-10-16 21:18 |只看该作者
回复  lwrsmy


    你要别人和你强调多少次?指针和数组是不同的,所以如果在第二个文件把pt声明成cha ...
x5miao 发表于 2011-10-16 20:42



我太偏激了,在我看来都是一个地址,实际上没有指定2维数,就跟传二维数组名做参数一样。

你是对的,谢谢

论坛徽章:
0
35 [报告]
发表于 2011-10-16 21:50 |只看该作者
回复 33# pmerofc


    sorry,我之前没看标准,只是《C语言核心技术》里面说是错误。
刚才用gcc编译试了一下,发现那怕加上-std=c99 -pedantic gcc也不给任何警告。运行时输出的是一个莫名奇妙的地址值

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
36 [报告]
发表于 2011-10-16 21:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
37 [报告]
发表于 2011-10-16 22:09 |只看该作者
回复 36# pmerofc

如果外部声明为 数组。
extern 为指针x。然后再用x[] 。就是错误的。
c专家编程有解释。
因为以指针形式访问数组的缘故。

论坛徽章:
0
38 [报告]
发表于 2011-10-16 22:14 |只看该作者
本帖最后由 x5miao 于 2011-10-16 23:27 编辑

回复 36# pmerofc


   针对这个问题我有个假设,由于句法语法分析这些过程都是在编译阶段完成的,所以如果外部标识符的声明和其他文件的声明不一致的话编译器无法发现。又由于C的目标文件里面已经没有原来符号的类型信息,所以在连接阶段也无法检查这种多文件之间的声明不一致。因此C编译器根本就无法发现lz的这种声明类型不一致错误。

正在看PC-lint的信息,这个东西真不错。过几天看能不能给我们领导推荐一下

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
39 [报告]
发表于 2011-10-16 22:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
40 [报告]
发表于 2011-10-16 22:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP