错,指针变量既可以作为函数的形参,也可以作函数的实参。
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的岑溪网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
当数组名作函数的参数时,传递到是数组的起始地址,形参是用来接受从实参传递过来的实参数组的地址的。因此,形参应该是一个地址变量(只有指针才能存放地址)。
数组名就是数组的首地址,实参向形参传递数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好像同一件物品有两个彼此不同的名称一样。同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可以作为函数的参数使用。
指针作为实参,指针作为形参:
扩展资料:
在c语言中实参和形参之间的数据传输是单向的“值传递”方式,也就是实参可以影响形参,而形参不能影响实参。指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值。
指针实质是一个内存地址,这个内存地址就是指针的指向地址,这个地址及其以后的地址中的内容就是我们说的指针指向的内容。函数在传递参数时传递的一定是形参。
参考资料来源:百度百科-指针变量
指针可以作实参。但你那样写是错误的,因为int
*a=NULL;的意思是指针a不可作右值使用,而后面的A(a);恰恰是把a当右值使用了。这样写就可以,如:int
x,*a=x;A(a);或int
y[10],*a=y;A(a);等等……
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;
指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。
调用就是用函数名,还要传送相应的调用参数。
没错是你的运气好,这样的情况下,程序崩溃几乎是必然的。
不要使用这样的做法。