#include
int add(int,int);
main()
{
int x,y,z;
int *p,*q;
p=&x,q=&y;
printf("enter x and y");
scanf("%d%d",&x,&y);
z=add(*p,*q);
printf("%d",z);
}
int add(int *a,int *b)
{
int sum;
sum=*a+*b;
return sum;
}
上面程序编译没有错误,但是执行的时候会有下面的提示:
a.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)
Debug/A.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
各位老师给解答一下,这是为什么呀??
####要理解指针
####符号* 对与指针的含义有两种
int * p = NULL
*p
取得指针p指向的内存的值####指针存在的最大意义是间接赋值
| 表头 | 表头 | 表头 | 表头 | 表头 | 表头 | 表头 | 表头 | 表头 | 表头 |
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 | 单元格 |
将这一句代码:
int add(int,int);
改成:
int add(int *,int * );
再将
z=add(*p,*q);
改成:
z=add(p,q);
z=add(*p,*q);