子函数的讨论

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子函数的讨论相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<stdlib.h>
void swap(int *p,int *q)
{
    int *m;
    *m=*p;
    *p=*q;
    *q=*m;
        
} 
main()
{
    int a,b;
    scanf("%d,%d",&a,&b);
    swap(&a,&b);
    printf("%d,%d",a,b);
}
1,2
2,2请按任意键继续. . .
[Warning] C:\Users\Lenovo\Documents\C-Free\Temp\未命名1.cpp:17:2: warning: no newline at end of file    这个是警告语句,但翻译弄不明白
总结;在编译过程中虽然没弄明白警告语句,但通过编译结果不难看出,子函数中*m并没有把值传给*q,以至于输出的结果成了2个相同的q值,那么在定义int *m就是错误的,他无法将自身的值再传出去,造成了p的值没有传给q,因而他们的值都变成了q的值,则返还给主函数a,b的值就全是q的值。
#include<stdio.h>
#include<stdlib.h>
void swap(int *p,int *q)
{
    int *m;
    m=p;
    p=q;
    q=m;
        
} 
main()
{
    int a,b;
    scanf("%d,%d",&a,&b);
    swap(&a,&b);
    printf("%d,%d",a,b);
}
1,3
1,3请按任意键继续. . .
总结;在这个子函数中是因为p与q的交换,是子函数中,也就是swap中的交换,而并没有改变main中a与b的值((没有交换main中a与b的地址)。因此在输出的结果中,a与b的值并没有受到子函数的影响,没有进行交换。
#include<stdio.h>
#include<stdlib.h>
main()
{
    int comp(int x,int y);//函数的说明 
    int (*p)(int x,int y);//定义指向函数的指针变量p 
    int a,b,c;
    p=comp;//使p指向comp函数 
    scanf("%d,%d",&a,&b);
    c=(*p)(a,b);//调用comp函数 
    printf("%d",c);
}
int comp(int x,int y)//定义comp函数 
{
    int z;
    if(x>y)
    z=x;
    else
    z=y;
    return(z);
}
1,2
2请按任意键继续. . .
总结:在“定义指向函数指针变量p”时,并不清楚*p(intint)的意义,*p后加(intint)是做什么用的。谢谢老师。

 

以上是关于子函数的讨论的主要内容,如果未能解决你的问题,请参考以下文章

切换片段时如何维护子视图的状态?

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

仅在一个片段中隐藏状态栏并在其他片段中显示

getActivity() 在片段上返回 null?

react 父组件向子组件传递函数

片段之间的共享数据(父列表视图和子列表视图)