《C语言及程序设计》程序阅读——参数传递方式:传值与传地址

简介: 返回:贺老师课程教学链接请分析下面程序的输出结果,对照在计算机上的运行结果,解释得到输出的过程。建议:通过在纸上画出内存变化的过程,洞悉计算机执行的过程。(1)#include<stdio.h>void fun(int x,int y,int *z){ *z=x*x+y*y;}int main(){ int a=31; fun(5,2,

返回:贺老师课程教学链接


请分析下面程序的输出结果,对照在计算机上的运行结果,解释得到输出的过程。

建议:通过在纸上画出内存变化的过程,洞悉计算机执行的过程。
(1)

#include<stdio.h>
void fun(int x,int y,int *z)
{
    *z=x*x+y*y;
}
int main()
{
    int a=31;
    fun(5,2, &a);
    printf("%d\n",a);
    return 0;
}

(2)
#include<stdio.h>
void fun(int *a, int *b, int *c)
{
    int *temp;
    temp=a;
    a=b;
    b=temp;
    *temp=*b;
    *b=*c;
    *c=*temp;
}
int main()
{
    int a,b,c,*p1,*p2,*p3;
    a=5;
    b=7;
    c=3;
    p1=&a;
    p2=&b;
    p3=&c;
    fun(p1,p2,p3);
    printf("%d,%d,%d\n",a,b,c);
    return 0;
}

(3)
#include<stdio.h>
void exchange(int *,int *,int *);
void myswap(int *,int *);
int main( )
{
    int a,b,c;
    scanf("%d %d %d", &a, &b, &c);
    exchange(&a,&b,&c);   //另一种调用方法
    printf("%d %d %d\n", a, b, c);
    return 0;
}
void exchange(int *q1,int *q2,int *q3)
{
    if(*q1<*q2) myswap(q1,q2);
    if(*q1<*q3) myswap(q1,q3);
    if(*q2<*q3) myswap(q2,q3);
}
void myswap(int *pt1, int *pt2)
{
    int temp;
    temp=*pt1;
    *pt1=*pt2;
    *pt2=temp;
}




目录
相关文章
|
20小时前
|
存储 自然语言处理 编译器
“ Hello world ”中的秘密之【C语言程序编译和链接】
作为C语言最经典的代码,大家都可以轻易写出。但是代码的运行过程却很少有人清楚,接下来我将介绍代码运行的奥秘。
12 0
|
1天前
|
C语言
第一章 C语言知识点(程序)
第一章 C语言知识点(程序)
12 0
|
2天前
|
自然语言处理 编译器 C语言
C语言程序编译和链接
在ANSI C的任何⼀种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。 第2种是执⾏环境,它⽤于实际执⾏代码。
|
5天前
|
网络协议 物联网 数据处理
【C 言专栏】C 语言实现网络通信程序
【5月更文挑战第4天】本文探讨了使用C语言实现网络通信程序的方法,包括理解网络通信基本概念如协议和套接字,以及TCP/UDP通信的实现步骤。通过创建套接字、绑定端口、监听连接、数据传输和错误处理等关键环节,阐述了C语言在网络通信中的优势。文中还提到了实际应用案例、程序优化策略及未来发展趋势,旨在帮助读者掌握C语言在网络通信领域的应用技巧。
【C 言专栏】C 语言实现网络通信程序
|
7天前
|
并行计算 算法 测试技术
【C 言专栏】优化 C 语言程序性能的策略
【5月更文挑战第2天】本文探讨了优化C语言程序性能的策略,包括算法优化(选择合适的时间和空间复杂度)、代码结构优化(减少函数调用,合理使用循环)、内存管理优化(合理分配和及时释放内存)、编译器优化(选择优化级别,内联函数,循环展开)、数据结构优化(根据需求选择数组、哈希表或堆)、并行计算优化(多线程、多进程和MPI编程)以及性能测试与分析(使用性能分析工具、基准测试和分析执行路径)。通过这些方法,可以提升C语言程序的效率和运行速度。
|
8天前
|
存储 Linux C语言
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-2
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
8天前
|
自然语言处理 Linux 编译器
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-1
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
10天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
10天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
10天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)