请问:指针程序出现这情况是什么原因,如何较好避免
请教一下:以下程序编译后,虽无错误,但出现如下的警告,英文意思百度了下,大约能看得懂是什么意思,但是不能理解,因为按书上所说,这样使用指针是可以,但是为什么会出现这种警告呢,又该怎么编写是相对比较正确的程序呢,请不吝指教,谢谢!程序代码:
#include<stdio.h> int add(int,int); main() { int x,y,z,*p,*q; printf("请输入一个数"); scanf("%d %d",&x,&y); p=&x;q=&y; z=add(p,q); printf("%d\n",z); } int add(int *a,int *b) { int sum; sum=*a+*b; return sum; }
--------------------配置: vc6.0 - CUI Release, 编译器类型: Microsoft C++ Compiler--------------------
[Warning] C4047: 'function' : 'int ' differs in levels of indirection from 'int *'
[Warning] C4024: 'add' : different types for formal and actual parameter 1
[Warning] C4047: 'function' : 'int ' differs in levels of indirection from 'int *'
[Warning] C4024: 'add' : different types for formal and actual parameter 2
[Warning] C4028: formal parameter 1 different from declaration
[Warning] C4028: formal parameter 2 different from declaration
完成编译 I:\electronic_practice\c_program\Console_Application_vc6\Console_Application_vc6.c: 0 个错误, 6 个警告
生成 I:\electronic_practice\c_program\Console_Application_vc6\vc6.0\Console_Application_vc6.obj