c语言 请问指针变量可以作实参吗

作者&投稿:容帜 (若有异议请与网页底部的电邮联系)
~ 指针可以作实参。但你那样写是错误的,因为int
*a=NULL;的意思是指针a不可作右值使用,而后面的A(a);恰恰是把a当右值使用了。这样写就可以,如:int
x,*a=&x;A(a);或int
y[10],*a=y;A(a);等等……


连平县13735696582: c语言 请问指针变量可以作实参吗 -
剧的益智: 指针可以作实参.但你那样写是错误的,因为int *a=NULL;的意思是指针a不可作右值使用,而后面的A(a);恰恰是把a当右值使用了.这样写就可以,如:int x,*a=&x;A(a);或int y[10],*a=y;A(a);等等……

连平县13735696582: C语言问题 函数中形参若为普通变量,则调用时对应位置上的实参可以是指针吗 -
剧的益智: 额,你这个问题是这样的么?void fun(int x) {....}调用时,你是 int *p; fun(p);//用指针变量来做形参这是不对的,因为编译器虽然弱智,但是他能分清楚类型啊.你这样相当于耍了编译器,他会报错的,通不过去. 你就把编译器看成是很傻很...

连平县13735696582: 为什么指针变量和数组名都可以当形参或者实参?求详解 -
剧的益智: 因为在编译的时候数组被看成是指针·~所以没有差别 如 int x[10]; int *p=x; 那么x[1]实际上就是*(p+1).p是变量,能存储地址, 而 数组x是地址常量 //都是被看成地址,只不过一个是变量,一个是常量至于为什么都能被当成参数 就好比调用函数fun(3); fun(x) 常量变量都可以.形参的话写成x[]这样的形式是为了表明指针是指向数组.//只是为了清晰,实质形参都是指针.而实参就是指针和数目名都可以~~//即实参可以是变量常量,形参都是被看成变量~~

连平县13735696582: 若函数的形参为指针变量则可接受什么样的实参 -
剧的益智: 比如形参是char*,函数是void f(char* a) 实参可以是指针 char* p; f(p); 也可以是地址 char c; f(&c); 也可以是数组名 char m[10]; f(m); 也可以是字符串 f("Hello world!"); 实际上 指针,是指针变量 地址,是指针常量 数组名,是指针常量 字符串,是数组,所以也是指针常量 如果理解了这些,C语言就算差不多融会贯通了

连平县13735696582: 在C语言里 只有指针作为形参才能改变实参的值吗 -
剧的益智: 准确的来说是对实参的地址上的修改才能改变实参的值 指针传递的是地址 所以可以改变 还有 你函数的形参接受的是和指针变量 你传递地址就可以 不一定非得是指针 直接取变量的地址

连平县13735696582: c语言中指针作为形参,代码如下: -
剧的益智: 你要用*去解引用,这样才能改变指针指向内存的值. 你的swap函数写的有问题,正确的写法有人给了. 至于为什么*x,*y的值没有改变,因为你交换的是2个形参的值,虽然你传入的是指针,但是你没有把它们当成指针来用,最后的结果跟传非指针值是一样的. 如果想真正改变实参的值,就必须交换指针指向的内存,而不是单纯交换指针变量本身.形参是通过堆栈传递的,只有用类似 *x = 1;这样的语句操作指针指向的内存,才能影响到实参,否则实参的值是不会改变的. 其实最好的方式就是去VS里调试运行,仔细观察运行过程,就能比较清晰地了解指针.单纯的理论是站不住脚的,拉出来溜溜就一清二楚了. 想对你能有帮助.

连平县13735696582: 在c语言中整形变量的指针能否赋值给整形变量? -
剧的益智: swap(int *p1,int *p2) 意思是p1,p2都是形参,都是指向整形的指针 temp=*p1; *p1=*p2; *p2=temp; 这里*p1代入后为,*(&a)即为a. 即这个函数能处理实参啦.

连平县13735696582: c指针作为参数传递问题 -
剧的益智: 1、实际上,指针变量中保存的内容是一个地址值,当需要在函数foo()中使用这个地址值时,就使用值传递,此时定义foo(char *p);而当需要在函数foo()中使用这个地址值的地址时,就使用地址传递,此时定义foo(char **p). 2、在指针的传递中,允许传递指针变量和指针变量的地址.这完全取决于使用者的需要. 3、使用&p和*&p分别表示传递的是一个变量引用,前者传递的是指针变量引用,后者传递的是指针变量地址的引用.使用*p则表示传递指针变量本身.

连平县13735696582: C语言形参是数组时,实参也可以是指针变量? 能帮忙举个例吗? 还是数组是实参,形参可以是指针变量;
剧的益智: 形参是数组时实参可以是指针,形参是指针时实参可以是数组名,但数据类型要相同.

连平县13735696582: C语言中,调用函数的实参是数组名,被调用函数的形参可不可以是指针 -
剧的益智: 可以.是数组也行,如: void f1(int a[]) {} void f2(int *p) {} int a[]={1,2,3}; f1(a); f2(a);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网