| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1127 人关注过本帖
标题:请问:指针程序出现这情况是什么原因,如何较好避免
只看楼主 加入收藏
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
结帖率:70%
收藏
 问题点数:0 回复次数:6 
请问:指针程序出现这情况是什么原因,如何较好避免
请教一下:以下程序编译后,虽无错误,但出现如下的警告,英文意思百度了下,大约能看得懂是什么意思,但是不能理解,因为按书上所说,这样使用指针是可以,但是为什么会出现这种警告呢,又该怎么编写是相对比较正确的程序呢,请不吝指教,谢谢!
程序代码:
#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
搜索更多相关主题的帖子: 如何 
2016-04-10 19:04
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
int add(int,int);
函数的声明与定义不符。

未佩好剑,转身便已是江湖
2016-04-10 19:19
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
居然只是警告而不是错误

未佩好剑,转身便已是江湖
2016-04-10 19:22
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
收藏
得分:0 
回复 2楼 alice_usnet
请教:应该怎么声明呢,我今天写了下,好像函数形参如果是指针的话,要int *a这样声明才可以,如果是int这样都不可以,那么是不是只要是指针的声明,就都是要把基类型,间址运算符和变量名都写完呢
2016-04-11 23:23
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
收藏
得分:0 
回复 3楼 alice_usnet
是的,这还只是编译,如果我是建立的话,就会有6个警告,但在最后结尾提示是0错误,0警告
2016-04-11 23:24
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
int add(int,int);

改为
int add(int* ,int*);

收到的鲜花
  • natto2016-04-12 17:54 送鲜花  3朵  

https://zh.
2016-04-11 23:27
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
收藏
得分:0 
回复 6楼 lin5161678
好,感谢
2016-04-11 23:34
快速回复:请问:指针程序出现这情况是什么原因,如何较好避免
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046069 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved