标题:[求助]'int *' differs in levels of indirection from 'int ' 的警告
只看楼主
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
结帖率:100%
 问题点数:0 回复次数:7 
[求助]'int *' differs in levels of indirection from 'int ' 的警告

#include<stdio.h>
int main(void){
int n,m,a[1000]; /*用a【】存放结果*/
int check(int *p);

for(n=0;n<1000;n++){
a[n]=0;
} /*给a[]赋值*/
for(n=1,a[0]=1;n<=40;n++){
for(m=0;m<1000;m++){
a[m]*=n;
} /*循环,依次相乘*/
for(m=0;m<1000;m++){
check(a[m]); /*逢十进一*/
}
}
for(m=999;m>=0;m--){
printf("%d",a[m]);
}
return 0;
}
int check(int *p){
int jin;
if(*p>=10){
jin=*p%10;
*p-=jin*10;
*(p+1)+=jin;
check(*(p+1));
}
return 0;
}

vc++编译 有四个警告
F:\c\jicheng2.c(14) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
F:\c\jicheng2.c(14) : warning C4024: 'check' : different types for formal and actual parameter 1
F:\c\jicheng2.c(28) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
F:\c\jicheng2.c(28) : warning C4024: 'check' : different types for formal and actual parameter 1
怎么解决?

搜索更多相关主题的帖子: int differs indirection levels 警告 
2007-10-20 23:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
int check(int *p){
int jin;
if(*p>=10){
jin=*p%10;
*p-=jin*10;
*(p+1)+=jin;
check(*(p+1));
}

倚天照海花无数,流水高山心自知。
2007-10-20 23:26
风的声音
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2007-3-27
得分:0 
你的check()参数好像是int类型的指针吧,可是你在递归调用的时候写道check(*(p+1));已经成了不是指针类型了。。
斑竹好像已经给你指出来了!!呵呵

一念心清净,莲花处处开。 一花一净土,一土一如来。
2007-10-20 23:35
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
得分:0 
check()形参是指针,实参却成了int型数了
2007-10-21 00:03
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
得分:0 
呵呵明白了  谢谢大家了
2007-10-21 12:45
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
得分:0 
for(n=1,a[0]=1;n<=40;n++){
for(m=0;m<1000;m++){
a[m]*=n;
}
for(m=0;m<1000;m++){
check(&a[m]);
}
}


a【m】不是地址吗?为什么非得加上&才能没有警告?
而且运行结果也不对,程序哪里有错?
2007-10-21 12:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
a【m】是值

倚天照海花无数,流水高山心自知。
2007-10-21 12:54
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
得分:0 

scanf("%d",a[m]); 不是就不用写成scanf("%d",&a[m]); 吗?

2007-10-21 12:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179415-1-1.html




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

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