指针变量能只能作为函数的形参不可以作函数的实参对还是错
错,指针变量既可以作为函数的形参,也可以作函数的实参。
当数组名作函数的参数时,传递到是数组的起始地址,形参是用来接受从实参传递过来的实参数组的地址的。因此,形参应该是一个地址变量(只有指针才能存放地址)。
数组名就是数组的首地址,实参向形参传递数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好像同一件物品有两个彼此不同的名称一样。同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可以作为函数的参数使用。
指针作为实参,指针作为形参:
扩展资料:
在c语言中实参和形参之间的数据传输是单向的“值传递”方式,也就是实参可以影响形参,而形参不能影响实参。指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值。
指针实质是一个内存地址,这个内存地址就是指针的指向地址,这个地址及其以后的地址中的内容就是我们说的指针指向的内容。函数在传递参数时传递的一定是形参。
参考资料来源:百度百科-指针变量
错。
只是要不然只有形参而没有实参的话,函数传参数没有用。但一般函数要用指针时会用引用的。
#include <stdio.h>
int add(int x[])//这里的数组即变成指针了
{
return x[0]+x[1];
}
int main()
{
int i[]={1,2};
printf("%d
",add(i));
return 0;
}
扩展资料:
存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。
举例:int a = 68 ,系统为变量a分配的首地址为0X065FDF4H,声明空指针long *p = NULL,p=&a是存放变量a地址的指针变量,即p=&a中存放的值为0x065FDF4H(a的值为68,&a的值为0x065FDF4H)。
对变量a的访问有两种方式:一是直接按地址0x065FDF4H找到a的存储单元,从而对变量a进行访问;二是按系统为p=&a分配的地址先找到p=&a,然后根据p,&a的值(即变量a地址0x065FDF4H)找到变量a在内存中的存储单元,从而对变量a进行访问。对于前一种访问方式称为直接访问方式,后一种访问方式称为间接访问方式。
参考资料来源:百度百科-指针变量
判断:指针变量只可以是函数的形参,不可以为函数的实参
不对吧,只是要不然只有形参而没有实参的话,函数传参数还有什么用啊。但一般函数要用指针时会用引用的。
因为指针是作为参数传递给函数的,传递的是指针指向的值。其本身并没有传递给函数。
指针变量能只能作为函数的形参不可以作函数的实参对还是错
答:错。只是要不然只有形参而没有实参的话,函数传参数没有用。但一般函数要用指针时会用引用的。include <stdio.h> int add(int x[])//这里的数组即变成指针了 { return x[0]+x[1];} int main(){ int i[]={1,2};printf("%d\n",add(i));return 0;} ...
在c语言中,指针作为函数参数,形参只能传递值,而不能传递地址,是怎么回 ...
答:C语言中,函数参数只能传值。与传值对应的是传引用,C语言不支持函数参数传引用,C++语言才支持。C++传引用函数:void foo(int& a) { a = 3; } 假如a = 2,执行foo(a)后,a = 3。--- C语言可以模拟传引用,方法是通过指针来实现:void foo2(int* ap) { *ap = 3; } 假如a = 2...
C++,const型指针变量做形参实参变量的问题
答:1、允许形参和实参都是const型的指针变量 2、允许形参和实参都是非const型的指针变量 3、允许形参是const型指针变量,而实参是非const型指针变量 4、不允许形参是非const型的指针变量,而实参是const型的指针变量。(原因在于指向非const型变量的指针变量只能指向非const的对象)你的3、4的情况是一样的...
结构体变量的指针能不能做函数形式参数?
答:结构体变量的指针是不能做函数形式参数的,因为如果结构体变量的指针,作为函数形式参数,那么有些事情可能就不成立了,如果这些事情不成立的话,也就是结构体变量的指针,做了函数形式参数,是没有任何意义的。
c语言题目,求详细解答啊!在线等
答:C语言规定,被调用函数中没有return语句的话,调用函数后没有返回值,本例中为什么n的值发生的变化呢?这要归功于指针变量,因为指针变量传的是地址。C语言中有一规定函数调用过程中值的传递为单向传递,即只能由实参传向形参。只有使用指针变量作为形参,才能达到传值的目的,而本例即属于此。
用指针变量作为函数参数
答:指针就是一个地址,用指针传递就是传递一个地址,你对一个地址所对应的内存操作,当然就会在被调函数中改变调用函数的变量的值。
C语言中函数实参变量用指针时, 形参变量也必须用指针? 判断对错 请举 ...
答:错了。书上原文是尽量 指针可以用数组来接收 不信你运行下以下代码
C语言中指针变量作为函数参数和一般变量作为函数参数的区别
答:一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。
C语言问题 函数中形参若为普通变量,则调用时对应位置上的实参可以是指针...
答:不一定!在调用的函数中,只有当出现“ *p,或者是p->成员变量 "进行赋值时,才是改变的原本变量的值。比如void fun(int *p,int *r){ int *temp;temp=p;p=r;r=temp;} //貌似是指针做形参,但是p,r所指代的值交换了么?没有,因为这只是对指针本身来回折腾的,压根就没改变指针所指...
C语言中,指针变量可以scanf函数的参数吗?为什么可以做或不可以做,如下...
答:可以做。你自己可以查看scanf函数定义:The scanf() family of functions scans input according to format as described below. This format may contain conversion specifications;the results from such conversions, if any, are stored in the locations pointed to by the "pointer" ...