LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 779|回复: 4

几个c问题

[复制链接]
发表于 2005-7-10 11:46:37 | 显示全部楼层 |阅读模式
1 typedef  struct aaa *aaa 什么意思 啊
   树上说 typedef 旧类型 新类型
   不明白上面怎么有三个东西啊
2  a=a->b什么意思呢  惭愧啊我
3  int x[3] y,k;
     for(k=0;k<4;k++)
     x[k]=k;
     y=k+100;
     for(k=0;k<4;k++)
    prinft("x[%d]=%d",k,x[k])  
树上说输出的x[0]=0 x[1]=1 x[2]=2 x[3]=104  怎么来的呢?不明白,
发表于 2005-7-10 11:52:24 | 显示全部楼层
这些东西每本基础的c语言书上都应该有吧
第三个有缓冲区溢出的漏洞,有可能会死循环吧(猜测而已,没试过)
回复 支持 反对

使用道具 举报

发表于 2005-7-10 11:55:44 | 显示全部楼层
哦,看错了,是赋值不是清零,不会死循环
回复 支持 反对

使用道具 举报

发表于 2005-7-10 12:02:08 | 显示全部楼层
最后一题的结果有问题啊
不同的编译器处理的可能不一样,优化和不优化也可能不一样
回复 支持 反对

使用道具 举报

发表于 2005-7-10 22:07:02 | 显示全部楼层
Post by libinyiyi
1 typedef  struct aaa *aaa 什么意思 啊
   树上说 typedef 旧类型 新类型
   不明白上面怎么有三个东西啊
2  a=a->b什么意思呢  惭愧啊我
3  int x[3] y,k;
     for(k=0;k<4;k++)
     x[k]=k;
     y=k+100;
     for(k=0;k<4;k++)
    prinft("x[%d]=%d",k,x[k])  
树上说输出的x[0]=0 x[1]=1 x[2]=2 x[3]=104  怎么来的呢?不明白,



typedef本来是最基本的关键字之一,应该自己看书。
不过加了一个struct可能会“迷人眼”。在C语言里,struct的标识符不能单独用,得跟着struct关键字。比如你定义了一个struct aaa, 你声明一个这种类型的变量name,就是 struct aaa name; (直接aaa name不行
typedef  struct aaa *aaa 也就是两个operand,只不过第一个operand是两个单词(struct aaa)罢了。hoho
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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