
正文
c语言函数参数里有指针吗 c语言中函数参数表
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在c语言中为什么有的函数参数是指针 有的是没有指针得
指针在函数参数中通常用于传递一个结构c语言函数参数里有指针吗,一个字符串c语言函数参数里有指针吗,或者一个需要修改c语言函数参数里有指针吗的变量c语言函数参数里有指针吗;因为在32位系统中变量size最大也只能是32位c语言函数参数里有指针吗,也就是4个字节,一个long,再大就不能直接传递了。
相关问答
Q1: c语言中指针作函数的参数是怎么回事???有点不懂!!!
如果使用指针作为参数就是地址传递c语言函数参数里有指针吗,否则只是值传递。你可以看下下面的这个函数:
void modify(int a)
{
a++;
}
void main()
{
int a=5;
modify(a);
printf("%d",a);
}
这个程序的答案还是5。为什么c语言函数参数里有指针吗?
因为当调用modify(a)时,在执行modify函数时,是另外开辟了一个内存空间,将main中a的值复制过来,modify函数中所有的操作都是相对于这个新开辟的内存空间而言的,对原来的a没有任何改变。
现在就来说说指针,如果用指针传参的话那就完全不一样了,指针(pointer),说白了即是指向变量内存地址。同样上面的例子:
void modify(int * a)
{
(*a)++;
}
void main()
{
int a=5;
modify(a);
printf("%d",a);
}
这个答案当然是6
因为你传进去的是a的地址,所以在modify函数中的操作都是对a地址上的内容进行操作,即是操作a所以modify函数不用返回这个数,main中a的值也会改变。因为大家都是操作同一个内存空间,而上面不用指针,modify操作的是另一个新开辟的内存空间,只是这个内存空间初始值和a一样。
你在子函数中要对你的主调用函数中变量进行操作时也可以用指针做参数,这样子函数就可以不用return 如果不是用指针的话,就要再子函数的未尾加上一条return x;把这个数返回当返回值。
Q2: c语言中函数名就是一个指针吗
是的。函数指针就是函数的指针,它是一个指针,指向一个函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
例:
A) char * (*fun1)(char * p1,char * p2);
B) char * *fun2(char * p1,char * p2);
表达式相比,唯一不同的就是函数的返回值类型为char**,是个二级指针。
C) char * fun3(char * p1,char * p2);
fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为char *类型。
扩展资料
函数指针使用的例子
#include stdio.h
#include string.h
char * fun(char * p1,char * p2)
{
int i = 0;
i = strcmp(p1,p2);
if (0 == i)
{
return p1;
}
else
{
return p2;
}
}
int main()
{
char * (*pf)(char * p1,char * p2);
pf = fun;
(*pf) ("aa","bb");
return 0;
}
Q3: C语言函数里的参数是指针的问题
函数定义和函数调用是两个概念c语言函数参数里有指针吗,函数定义 为f(int *arr)c语言函数参数里有指针吗,表示参数是一个整型指针c语言函数参数里有指针吗,因此使用该函数时要传递一个地址,如变量int a=0; 调用函数f传递ac语言函数参数里有指针吗的地址时需要写为f(a);而对于数组来说,如int b[]=[1,2,3], b本身就是数组首元素c语言函数参数里有指针吗的地址,因此调用函数f传递数组首地址需要写为f(b)。
Q4: C语言,函数参数是变量,函数内使用指针。
我执行了你的程序,结果是:
show1函数执行的时候,number放在地址0012FF2B里,但是执行完后这个地址系统就回收了,不再保存number。
到show2函数执行的时候,恰好系统也给number1分配了这个地址0012FF2B,这个时候地址0012FF2B放的是number1.
所以这里没有存在冲突的地方。
关于c语言函数参数里有指针吗和c语言中函数参数表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






