十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
通过数组或者指针把主函数main()中的数据传到函数中,程序改动如下,已经在win-tc和Dev-c++下调试通过。
创新互联公司主营永清网站建设的网络公司,主营网站建设方案,APP应用开发,永清h5成都小程序开发搭建,永清网站营销推广欢迎永清等地区企业咨询
#include
"stdio.h"
void
show
(int
s[]
,int
n)
/*
x[]的地址这里已经传给了s[]
*/
{
int
*p
;
p=s;/*
s的地址给了p,p就指向了x[]
*/
for(p=s;ps+n;p++)/*
这里已经遍历了数组各元素
*/
{if(*p%2==0)
*p=*p+*p;
else
*p=*p+*p+*p;
}
}
int
main(
)
{int
num;
int
x[]={11,12,13,14,15,16,17,18},*z;
num=sizeof(x)/sizeof(x[0]);/*
你的是8个数吧
*/
show(x,num);
/*把num改成8也可以,一个意思*/
for
(z=x;zx+num;z++)
printf
("%d
",*z);
printf
("\n");
system("pause");
}
#includestdio.h
#define N 5
#define M 5
void f(int a[][M],int n,int m,int *s) { int i,j;
for ( i=0;in;i++,s++ ) {
*s=a[i][0]; for ( j=1;jm;j++ ) if ( *sa[i][j] ) *s=a[i][j];
}
}
void main() { int a[N][M],s[N],i,j;
for ( i=0;iN;i++ ) for ( j=0;jM;j++ ) scanf("%d",a[i][j]);
f(a,N,M,s);
for ( i=0;iN;i++ ) printf("%d\n",s[i]);
}
char *match (char*s,char ch1,char ch2)
函数各部分的含义:
第一个char,一般是代表函数的返回值是一个字符。但是它后面有一个*,应该把char和*连起来看,就是char*了。
那么,第一个就是char*,代表函数的返回值是一个字符指针(地址)。
match是函数的名字。
括号内是函数的参数,多个参数用逗号分隔。本例共有3个参数:char*s,char ch1,char ch2,第一个是s,类型为char*型(字符指针型),后两个ch1、ch2都是char型(字符型)。
到这儿,你就知道去掉*match前的*为什么就不对了。
另外,括号里参数类型(如包含指针)跟函数返回值的类型无关。函数名前加不加*只与函数返回值的类型有关。