存档

文章标签 ‘C’

C语言:数组&指针

2006年11月30日 3 条评论

引用数组int arr[]的元素arr[n]的地址,使用&arr[n]

可以用下面的方式来引用数组元素:

int *p;

p = arr;  /*此处arr表示数组arr[]的首元素地址*/

此时arr[n]  *(arr+n)  *(p+n)都表示数组元素.

此处,[]可以被理解为是一种运算符.

函数引用一维数组是,可以用数组名作为实参,也可以用数组地址作为实参.

int fun(int *p , int n);

main(void)

{

int arr[X];

fun(arr|arr[m]);

使用数组名作为实参时,p[n]指向数组元素arr[n]

而使用数组元素arr[m]作为实参时,p[n]就变为指向数组元素arr[m+n]

总结完毕.

分类: 不是默认分类 标签:

自定义函数中的地址传递问题.

2006年11月21日 10 条评论

写一个函数,对传送过来的三个整数选出最大数和最小数,并通过形参传回调用函数。


#include
int mm(int a,int b, int c,int *max,int *min);
int main (void)
{
int a,b,c;
int max,min;
scanf("&d,%d,%d",&a,&b,&c);
/*这一行的&d改为%d,郁闷,编辑模式也看不很清楚*/
mm(a,b,c,&max,&min);
printf("max of a,b,c is %d\n",max);
printf("min of a,b,c is %d\n",min);
}
int mm(int a,int b,int c,int *max,int *min)
{
if (a>b)
{
*max=a;
*min=b;
}
else
{
*max=b;
*min=a;
}
if (c>*max) *max=c;
else if (c<*min) *min=c;
}

上面是我写的代码和题目要求,我的代码错哪了?

问题解决了…很郁闷…去把N++的语法加亮的配置改了…加亮的地方应该用亮色!

分类: 不是默认分类 标签: