#include<stdio.h>
#include<stdlib.h>
int fun(int n)
{
int *p;
p=(int *)malloc(sizeof(int));
*p=n;
return *p;
}
main()
{
int a;
a=fun(10);
printf("%d\n",a+fun(10));
}
为什么这个程序的结果是:20
其中 p=(int *)malloc(sizeof(int));
这句是什么意思?
#include<stdio.h>
#include<stdlib.h>
int fun(int n)
{
int *p;
p=(int *)malloc(sizeof(int));
*p=n;
return *p;
}
main()
{
int a;
a=fun(10);
printf("%d\n",a+fun(10));
}
为什么这个程序的结果是:20
其中 p=(int *)malloc(sizeof(int));
这句是什么意思?
p=(int *)malloc(sizeof(int));
的意思是申请一个INT类型大小的空间,将地址转换成int * 型指针赋值给p;
a=fun(10);这句返回值是10,
printf("%d\n",a+fun(10));
最后显示的是a+fun(10)的值,也就是10+10的值,结果是20没错。
p定义是 int型指针
malloc是申请空间函数
所申请空间的大小为 sizeof(int)
申请之后你可以把p当初一维数组使用
p[0],p[1],p[2]...直接可以使用