20210721declaration and definition of functions

//函数的 声明 和 定义


//函数定义放在主函数后面面,因为代码从上往下扫描,所以跑不起来
//需要声明一下 
//函数的 调用 和 声明
//最多用于调用其他  .c 文件的函数或者  .h 文件
//#include<stdio.h>
//#include"add.h"  //自己做的头文件有用双引号  

//int add(int,int);//int add(int x,int y);
//int main()
//{
//    int a = 10;
//    int b = 20;
//    int sum = add(a, b);
//    printf("%d\n",sum);
//    return 0;
//}
          //int add(int x, int y)//函数定义
          //{
          //    int z = x + y;
          //    return z;
          //}

//函数的 嵌套调用 和 链式访问

//函数的 嵌套调用 

//#include<stdio.h>
//void new_line()
//{
//    printf("hehe\n");
//}
//void three_line()
//{
//    int i = 0;
//    for (i = 0; i < 3; i++)
//    {
//        new_line();
//    }
//}
//int main()
//{
//    three_line();
//    return 0;
//}

//函数的 链式访问

//#include<stdio.h>
//#include<string.h>
//int main()
//{
//    //1
//    int len = 0;
//    len = strlen("abc");
//    printf("%d\n",len);
//    //2
//    printf("%d\n",strlen("abc"));//链式访问
//    return 0;
//}


//#include<stdio.h>
//int main()
//{
//    printf("%d",printf("%d",printf("%d",43)));//输出为 4321
//    printf返回值是字符串个数
//    printf("%d",43) 屏幕上打印了2个字符43,这时屏幕显示43,而printf("%d",43)的返回值为2,
//    即printf("d",printf("%d",2));
//     printf("%d",2)在屏幕上打印了1个字符2,这时屏幕显示432,而printf("%d",2)的返回值为1;
//    即printf("%d",1);在屏幕上打印了1个字符1,这时屏幕显示4321
//    return 0;
//}

//void add(int* p)
//{
//    (*p)++;// ++ 优先级高于*,所以要打括号
//}
//int main()
//{
//    int num = 0;
//    add(&num);
//    printf("%d\n",num);
//    add(&num);
//    printf("%d\n", num);
//    add(&num);
//    printf("%d\n", num);
//    return 0;
//}

//二分查找

//#include<stdio.h>

                 //本质上 arr 是一个指针 
//int binary_search(int arr[], int k,int sz)
//{
    /*int sz = sizeof(arr) / sizeof(arr[0])*/;//数组传参不能再用这个方式器
    //方法:放到主函数里先算好
//    int left = 0;
//    int right = sz - 1;
//    while (left <= right)
//    {
//        int mid = (left + right) / 2;
//        if (k > arr[mid])
//        {
//            left = mid + 1;
//        }
//        else if (k < arr[mid])
//        {
//            right = mid - 1;
//        }
//        else
//        {
//            return mid;
//        }
//    }
//    return -1;
//}
//int main()
//{
//    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//    int k = 7;
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    int ret = binary_search(arr, k,sz);
    //  数组名是数组首地址  传递是 arr 首元素的地址
//    if (-1 == ret)
//    {
//        printf("没找到\n");
//    }
//    else
//    {
//        printf("找到了,下标是:%d\n", ret);
//    }
//    return 0;
//}


//打印1000~2000年中的闰年

//#include<stdio.h>
//
//int is_leap_year(int x)
//{
//    return (((0 == x % 4) && (0 != x % 100) )|| (0 == x % 400));
//
//}
//int main()
//{
//    int year = 0;
//    for (year = 1004; year <= 2000; year+=4)
//    {
//        if (is_leap_year(year) == 1)
//            printf("%d ",year);
//    }
//    return 0;
//}


//输出100 至 200 中的素数

//#include<stdio.h>
//#include<math.h>
//
//int is_prime_number(int n)
//{
//    int z = 0;
//    for (z = 2; z <= sqrt(n); z++)
//    {
//        if (0 == n % z)
//        return 0;
//    }
//        return 1;
//}
//int main()
//{
//    int i = 0;
//    for (i = 101; i <= 200; i+=2)
//    {
//        if(is_prime_number(i) == 1)
//        printf("%d ",i);
//    }
//    return 0;
//}


// 自定义函数

//#include<stdio.h>
//
//void swap1(int x, int y)//形式参数,当函数调用完之后,就会自动销毁
//{                                 //与局部变量相似
//    int tmp = 0;
//    tmp = x;
//    x= y;
//    y = tmp;
//}
//当实参转给形参的时候,形参是实参的一份拷贝,对形参的改变是不会改变实参的

//void swap2(int* pa,int* pb)//形式参数当函数调用完之后,就会自动销毁
//{
//    int tmp = *pa;
//    *pa = *pb;
//    *pb = tmp;
//}
//int main()
//{
//    int a = 10;
//                  int* pa = &a;//pa 指针变量
//                  *pa = 20 ; //解引用操作
//    int b = 20;
                 /*int*pb = &b;*/
                 /**pb = 10;*/

    //在使用swap函数,就是调用函数,
    //调用函数分为,传值调用,传址调用

 /*    swap1(a,b);*/  //无法交换a与的b的值,只是交换自定义函数中x与y的值
    //传值调用  不会改变实参的值

    //swap2(&a,&b);//&a  &b 是真实传给自定义函数,所以实际参数。a.b也是真实转给自定义函数,所以也是实际参数
  //传址调用    会改变实参的值

//    printf("a=%d b=%d\n",a,b);
//    return 0;
//}


//#include<stdio.h>

//int max(int x, int y)
//{
//    if (x > y)
//        return x;
//    else
//        return y;
//}
//int main()
//{
//    int a = 10;
//    int b = 20;
//    int ret = max(a,b);
//    printf("max = %d\n",ret);
//    return 0;
//}

//#include<stdio.h>
//#include<string.h>

//int main()
//{
//    //memset 内存操作函数 memory(n.内存) -set(设置)
//    char arr[] = "hello world";
//    memset(arr, '*', 5);
//    printf("%s\n",arr);
//
//    //strlen - string-length字符串长度
//
//    //strcpy- string - copy - 字符串拷贝
//    //char arr1[] = "bit";
//    //char arr2[20] = "########";
//    //strcpy(arr2, arr1);
//    //printf("%s\n",arr2);
//    //return 0; 
//}

add.c

#define _CRT_SECURE_NO_WARNINGS 1
int add(int x, int y)//函数定义
{
    int z = x + y;
    return z;
}

add.h

#define _CRT_SECURE_NO_WARNINGS 1
//函数声明
int add(int x, int y);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dark And Grey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值