#includestdio.h
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了新巴尔虎左免费建站欢迎大家使用!
int func() {
return 10000;//这个函数返回了一个数字
}
void func1(int num) { printf("%d", num); }//这个函数接受一个数字并输出
int main()
{
func1(func());//func1接受func返回的数字并输出
return 0;
}
比如有一个函数bool test(int a, char b),那么在其他地方调用该函数时也要有2个类型相同的参数,假设有int x和char y,那么直接test(x, y)就可以给函数传值。
你的p、q的指针是使用的是x、y的地址,而x和y的地址是不可能改的,你觉的q和p的地址能改吗?
而你在fun里的a和b是两个局部变量,他只是内存地址改了,而没有改变x和y的地址和他所在内存的内容。
p函数就是个冒泡递减排序功能。标准函数头写法应该是void p(int a[])而不是void p(int a[5]),即使写成void p(int a[5]),编译器也是按void p(int a[])解释而不按void p(int a[5])解释,而且这里a[]的意思就是定义a是int *型指针。函数p中并没有改变a,改变的是a指向的目标a[0]~a[4]。所以不知你问的具体是啥意思……
if(k==0||i=x[k-1])
{
x[k]=i;//写入数组
split(n-i,k+1);
}这里x[k]=6;所以n-i=0,传入split中的形参n,这个时候n就变成0了
切 这个例子是为了让你理解函数传递到底是什么。(c当中的函数参数传递一直是值传递,别被指针迷惑了)
指针也只是一个变量而已。
因为你传的是该指针,用的也是该指针。函数传递参数是值传递。
也就是拷贝了一份pt的值进去。
并未对pt本身做任何的操作。
所以pt还是那个pt。