工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1897|回复: 4

奇怪的语句putchar(31[a]);

[复制链接]
发表于 2009-1-21 05:12 | 显示全部楼层 |阅读模式
[C语言]
  1. main(t,_,a)
  2. char *a;
  3. {
  4.   ...
  5.   putchar(31[a]);
  6.   ...
  7. }
复制代码
char *a; 这句什么意思啊?  全局指针变量 ?
main的参数不是已经定义变量a了吗? 这个不是犯了重定义变量的Error ??


ts ...

[ 本帖最后由 anlogo 于 2009-1-21 11:47 编辑 ]
发表于 2009-1-21 23:44 | 显示全部楼层
K&R C,相当于:
main(t,__,char*a)
现在的函数都使用原型了,所以这种用法相对少了吧?
回复

使用道具 举报

 楼主| 发表于 2009-1-24 10:12 | 显示全部楼层
嗯 明白了 这是K&R C的老式声明  ths.!!!
回复

使用道具 举报

发表于 2009-2-10 16:17 | 显示全部楼层
函数定义有两种方法:
(1)
type function (type1 param1,type2 param2。。。)
{
}
(2)
type function(param1,param2。。。)
type1 param1,
ype2 param2,
。。。;
{
}
回复

使用道具 举报

发表于 2009-2-10 22:57 | 显示全部楼层
31[a]其实就是a[31]

编译器会把它们都翻译成 *(a+31)

如果不是秀语法一般不这么写
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-6-2 22:26

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表