C语言使用数组指针参数传递

C语言使用数组指针参数传递,第1张

指针传递一维数组

#include <stdio.h>

#include <森滚math.h>

float dist( float *p1, float *p2){

float d[3],ds

int i

for (i=0i<3i++) d[i] = p2[i]-p1[i]

ds = sqrt( d[0]*d[0]+ d[1]*d[1]+d[2]*d[2])

return ds

}

void vec( float *p1, float *p2, float *p3){

int i

for (i=0i<3i++) p3[i]=p1[i]+p2[i]

}

int main()

{

float a[3],b[3],c[3]

int i

printf("input x y z for point 1\n"此凯余)

for (i=0i<3i++)scanf("%f",&a[i])

printf("input x y z for point 2\孙者n")

for (i=0i<3i++)scanf("%f",&b[i])

printf("distence: %g\n", dist(a,b))

printf("\n")

vec(a,b,c)

for (i=0i<3i++) printf("%g ",c[i])

return 0

}

数组名就是指针,例如:

#include <stdio.h>

void pr(char *p)

{

printf(p)

}

void main(void)

{

char s[] = "abc"

pr(s)

}

扩展资料:

注意事项

非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加戚仔丰富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而脊迹后面樱仔并的这种方式则不能够直观地看出这种含义。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12442945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存