C语言中关于函数调用的理解

 理论

关于函数调用的方式有两类:传值调用传址调用

传值调用:函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参

传址调用:把函数外部创建变量的内存地址传递给函数参数的一种调用方式。可以让函数和函数外面的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量

我们可以用一串代码来解释这两者的区别

#include<stdio.h>
int fun1(int a,int b)
{
    int c;
    c=a;
    a=b;
    b=c;
}
int fun2(int *pa,int *pb)
{
    int d;
    d=*pa;
    *pa=*pb;
    *pb=d;
}
void main(){
	int a=10,b=20;
    fun1(a,b);
    printf("a=%d,b=a%d\n",a,b);
    fun2(&a,&b);
    printf("a=%d,b=%d",a,b);
}

 在这串代码中,fun1是传值变量,fun2是传址变量,正如上面所说:

fun1内部的代码叫做形参,它里面的东西不会影响到主函数内实参的改变,所以在输出时,a,b没有改变

fun2内部的代码直接把a,b的内存地址拿过来了,相当于fun2中的变量与主函数里面的变量建立了联系,在fun2里面做修改就会影响到主函数里面相对变量的值,所以我们在fun2里面把a,b交换后,主函数中的a,b也受到了影响。


题目

打印100~300之间的素数

素数: 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫素数

#include<stdio.h>
int fun(int i)
{
   


}
void main(){
	int i;
    for(i=100;i<=300;i++) {
        if (fun(i) == 1) {
            printf("%d ", i);
        }
    }
}

在写外部函数前,我们都应该先看一下主函数,然后根据主函数来理解外部函数中要让我们做什么

根据这个主函数我们可以知道,我们要在外部函数中判断100~300之间有哪些素数

首先,我们要用一个变量遍历一遍小于 i 的所有数,以此来看看有哪些数除了1和本身不能被其他自然数整除

遍历完之后,如果可以被其他自然数整除,那就return 0,否则,return 1。

具体代码如下:

int fun(int i)
{
    int a;
    for(a=2;a<i;a++) {

        if (i % a == 0)
            return 0;
    }
            return 1;
}

判断是否为闰年

基础规律:非整百年能被4整除而不能被100整除。 这是最基本的判断闰年的方法。

完备原则:整百年能被400整除而不能被3200整除。 

#include<stdio.h>
int fun(int i)
{
   


}
void main(){
	int i;
    for(i=1000;i<=2000;i++) {
        if (fun(i) == 1)
            printf("%d ", i);
    }
}

 通过主函数我们可以知道,外部函数是要判断是否为闰年

闰年的规则已经写在题目下方了,按照规则,我们可以得出这样一串代码

int fun(int i)
{
    if(i%4==0 && i%100!=0)
        return 1;
    else if(i%400==0)
        return 1;
    else
        return 0;
}

 这里整年和非整年要分别判断,所以我们要用到两个if

由于这里最高是2000,所以我在第二个if里面没有加上不等于3200这个条件 

相关推荐

  1. C语言关于函数和数组理解

    2024-01-07 22:54:01       39 阅读
  2. 理解并实现C语言strcpy函数

    2024-01-07 22:54:01       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 22:54:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 22:54:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 22:54:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 22:54:01       20 阅读

热门阅读

  1. Pycharm设置CTRL+鼠标滚轮缩放文字大小

    2024-01-07 22:54:01       52 阅读
  2. Python3 列表--20240104

    2024-01-07 22:54:01       37 阅读
  3. 牛客 root(N,k)快速幂、推公式(难题噢)

    2024-01-07 22:54:01       45 阅读
  4. Python 注释的方法

    2024-01-07 22:54:01       39 阅读
  5. 【LeetCode】1393. 股票的资本损益

    2024-01-07 22:54:01       36 阅读
  6. Python 处理剪切板内容,加载网址

    2024-01-07 22:54:01       36 阅读
  7. 2023年后,AI 还有什么研究方向有前景?

    2024-01-07 22:54:01       34 阅读
  8. linux 清空nat,linux 命令iptables -t nat

    2024-01-07 22:54:01       30 阅读
  9. blender Principled BSDF

    2024-01-07 22:54:01       40 阅读