zuoxuening 2016-08-04 13:37 采纳率: 50%
浏览 2948

c语言指针问题 从键盘输入两个数,让它们相加。

#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 时出错.

各位老师给解答一下,这是为什么呀??

  • 写回答

3条回答 默认 最新

  • COME_CC 2016-08-04 16:59
    关注

    ####要理解指针

    • 指针其实也是一种占4个字节(32位操作系统)的数据类型,其中存储的值是指向的内存首地址

    ####符号* 对与指针的含义有两种

    • 一种是在定义指针的时候 int * p = NULL
    • 一种是取值的时候 *p 取得指针p指向的内存的值

    ####指针存在的最大意义是间接赋值

    • 函数传入变量的地址,函数内部就可以根据这个指向变量地址的指针来间接改变函数外部变量的值
    评论

报告相同问题?