首页 > 其他分享 >学C笔记归纳 第十一篇——函数1

学C笔记归纳 第十一篇——函数1

时间:2023-12-11 13:11:44浏览次数:27  
标签:函数 temp 归纳 int void 笔记 第十一篇 printf swap

库函数学习网站:

www.cplusplus.com/reference/clibrary

官方英文版:https://en.cppreference.com

官方中文版:https://zh.cppreference.com

尽量提高英文阅读能力,对后续学习工作帮助非常大。

函数命名都是有意义的,大多包含功能英文缩写,库函数的使用必须包含头文件。

 

函数的组成:

ret_type fun_name(para1,*)

{

        statement;//语句项

}

ret_type         返回类型

fun_name        函数名

para1                函数参数

{statement;}  函数体,函数的实现

#include <stdio.h>
int max(int x, int y)
{
    return (x > y ? x : y);
}
void print()
{
    printf("void 无返回类型函数");
}
int main()
{
    int a = 19;
    int b = 29;
    scanf("%d %d", &a, &b);
    int bigger = max(a, b);
    printf("%d\n", bigger);
    print();
    return 0;
}

 

 函数传参时 要注意 修改形参的值 不会 影响实参的值

#include <stdio.h>
void swap(int x, int y)
{
    int temp = 0;
    temp = x;
    x = y;
    y = temp;
    printf("x=%d,y=%d\n", x, y);
}

int main()
{
    int a = 1;
    int b = 10;
    swap(a, b);
    printf("a=%d,b=%d\n", a, b);
    return 0;
}

 

 

 

 

 a和b的值完全没变,这是为什么?

 进入调试界面

发现,虽然将 a, b 的值传给了  x,y,但他们地址不同。修改x和y的值不会影响a和b的值。

综上,注意实参传形参时,形参是实参的临时拷贝,对形参的修改不会影响实参。

既然如此,我们直接将地址传入函数,再操作即可。

#include <stdio.h>
//void swap(int x, int y)
//{
//    int temp = 0;
//    temp = x;
//    x = y;
//    y = temp;
//    printf("x=%d,y=%d\n", x, y);
//}
void swap(int* px, int* py)
{
    int temp = *px;
    *px = *py;
    *py = temp;
    printf("*px=%d,*py=%d\n", *px, *py);
}

int main()
{
    int a = 1;
    int b = 10;
    /*swap(a, b);*/
    swap(&a, &b);
    printf("a=%d,b=%d\n", a, b);
    return 0;
}

 

 

 

 

标签:函数,temp,归纳,int,void,笔记,第十一篇,printf,swap
From: https://www.cnblogs.com/xiaowanglong/p/17894155.html

相关文章

  • 平衡树(无旋Treap,范浩强树)学习笔记
    平衡树:YYDS以下是常见的平衡树/要用平衡树实现的算法:Treap(有旋/无旋)Splay树WBLT(WeightBalancedLeafyTree,重量平衡线段树)SBT(SizeBalancedTree,陈启峰树)AVL树B树、B+树笛卡尔树红黑树、左偏红黑树、AA树替罪羊树\(\to\)K-DTree(k-DimensionTree)LT(LeafyTree,平......
  • 读程序员的README笔记07_测试(下)
    1. 自己动手编写测试1.1. QA团队可以帮助你验证你的代码是否稳定,但千万不要把代码直接丢给他们,然后让他们做所有的测试1.2. 避免硬编码的值,不要重复代码1.3. 专注于测试基本功能而不是实现细节,这有助于代码库的重构1.3.1. 测试代码在重构后仍然可以运行1.4. 将测试的......
  • Linux操作系统 文件查找、打包压缩及解压读书笔记
    当涉及Linux文件查找、打包压缩和解压时,确实有很多详细的内容。以下是更详细的解释和示例:1.文件查找在Linux中,find命令用于在文件系统中搜索文件和目录。下面是一些常见用法:基本用法:在整个文件系统中查找文件或目录:bashCopycodefind/-namefilename在当前目录及......
  • AT_dp 做题笔记
    持续更新。更好的阅读体验?更朴素的阅读体验?未完成题目AT_dp_s,AT_dp_t,AT_dp_v,AT_dp_w,AT_dp_x,AT_dp_y,AT_dp_z。AT_dp_aSolution青蛙只能从\(i-1\)或\(i-2\)跳过来,所以转移方程自然地就是\(dp_i=min(dp_{i-1}+|h_i-h_{i-1}|,dp_{i-2}+|h_i-h_{i-2}|)\)。Cod......
  • Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作
    本文首发于公众号:Hunter后端原文链接:Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作这一篇笔记介绍如何使用Nginx+uWSGI来部署Django。上一篇笔记中有介绍直接使用uWSGI作为web服务器来部署Django,这一篇笔记介绍如何使用Nginx来部署。使用Ngin......
  • 程序员的思维修炼 读书笔记01
    Dreyfus模型将学习的过程分为五个不同的阶段或水平:1.新手(Novice)需要详细的指导——要手把手地教。新手不知道这些指导是否有效,或者哪些指导更加重要;因为没有上下文知识可供他们使用进行评估。因此,新手需要频繁迅速的成就感和有规律的反馈。一本好的入门指导书籍要提供有足够多的......
  • openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebac
    openGauss学习笔记-151openGauss数据库运维-备份与恢复-物理备份与恢复之gs_basebackup151.1背景信息openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs_basebackup工具做基础的物理备份。gs_basebackup的实现目标是对服务器数据库文件的......
  • C++学习笔记五:变量与数据类型(Auto类型)
    Auto允许编译器自己来推断变量的类型,这种新功能是在c++11引入的。这个关键字结合for循环使用可以节省变量类型的重复输入。VSCode可以在鼠标移动到变量上之后直接显示变量的类型。autovar1{12};//intautovar2{13.0};//doubleautovar3{14.0f};//floatautovar4{15......
  • Linux 笔记
    Whatdoes"{};"meaninthefindcommand?Ifyourun find with exec, {} expandstothefilenameofeachfileordirectoryfoundwith find (sothat ls inyourexamplegetseveryfoundfilenameasanargument-notethatitcalls ls orwhatevero......
  • Adaptive Graph Contrastive Learning for Recommendation论文阅读笔记
    Abstract在实际的场景中,用户的行为数据往往是有噪声的,并且表现出偏态分布。所以需要利用自监督学习来改善用户表示。我们提出了一种新的自适应图对比学习(AdaGCL)框架,该框架使用两个自适应对比视图生成器来进行数据增强,以更好地增强CF范式。具体的说,我们使用了两个可训练的视图生......