C语言定义问题,解释的详细点我多给分!我在看程序时经常看见这样的定义,如:void *creat(int n)

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:58:05
我在看程序时经常看见这样的定义,如:void *creat(int n[]),我不懂括号中的int n[]是什么含义
比如说:void add_poly(KC *pa,KC *pb)
{
...
}
问什么不把*pa和*pb定义到大括号里面去呢?
如果void add_poly()
{
KC *pa,*pb;
}和上面有什么区别?

看书吧。。。
简单回答下。。。
比如每个人都有名字,但是名字相同不代表人相同,一个函数可以看成是一个地点。。。
在括号里面的void add_poly(KC *pa,KC *pb) 是指定的人(即数据),但是在
{
... KC *pa,*pb;
}里的只是另一个有着相同名字的人,不是你所要指定的人(即数据),两个的数据不一样。。。
另外加上一个*表示直接将这个人从另一个地点(函数)抓过来任你处置(专业点是传数据的存储地址,这样可以改变数据的值)。。。
没加就是只是将这个人(数据)的资料传过来,人并不在你的地盘(函数),你不能对数据进行修改,即使你说这个人是猪,但并不能改变他是人的事实,除非你加个*,这样你说他是啥就是啥了。。。(n【】是数组n的头指针)

据我所知对程序员本身来说没差别~不过我是菜鸟,等等看

呵呵.上面的是说明函数有参数.要对参数进行说明.在使用这个函数时,要给它参数才可以.下面那个函数没有参数.那大括号里的是函数内部的变量.使用它的时候不用给参数的.明白不?再多说一句:要把书读透.朋友.