anlogo 发表于 2009-1-21 05:12

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

main(t,_,a)
char *a;
{
...
putchar(31);
...
}
char *a; 这句什么意思啊?全局指针变量 ?
main的参数不是已经定义变量a了吗? 这个不是犯了重定义变量的Error ??


ts ...

[ 本帖最后由 anlogo 于 2009-1-21 11:47 编辑 ]

gyCai 发表于 2009-1-21 23:44

K&R C,相当于:
main(t,__,char*a)
现在的函数都使用原型了,所以这种用法相对少了吧?

anlogo 发表于 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)

如果不是秀语法一般不这么写
页: [1]
查看完整版本: 奇怪的语句putchar(31[a]);