首页/文章/ 详情

空腹桁架工程案例(二)

5月前浏览429

城市天桥不仅是交通需求的解决者,也通过其美学价值成为城市景观的亮点。作为城市道路工程的关键一环,城市天桥的初衷主要是为了满足城市的交通需求。然而,随着城市规划的日益精细,人行桥的美学价值也受到了越来越多的关注。如今,城市天桥不仅承载着交通和疏散人群的基本功能,更成为城市空间的重要组成部分,发挥着景观和地标的重要作用。

以下是香港的空腹桁架天桥。



来源:数值分析与有限元编程
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-03-25
最近编辑:5月前
太白金星
本科 慢慢来
获赞 14粉丝 32文章 397课程 0
点赞
收藏
作者推荐

从内存角度谈函数调用

C/C++有一个经典的swap函数---交换两个变量的值,最常见的实现方式是通过指针传递变量地址,这样就能在函数内部直接修改原变量的值。比如,对于两个整型(int)变量a和b,可以这样写:voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){inta=10,b=20;swap(&a,&b);//这里要传变量的地址:printf("a=%d\n",a);}swap函数的参数为什么要用指针?要搞清楚这问题,首先要回顾一下指针。▲图1图1说明了指针的用法。这里指针的类型是char*,即指向char的指针。pChar变量只能存储char变量的地址。存储在ch中的值通过指针修改,实现了间接访问(操作)。在vscode里面编辑好代码,并点击右上角的run按钮(假设已经安装了插件),此时操作系统会创建一个进程,其内存布局如图2▲图2一个进程在自已的内存区域中至少包括四个基本部分:代码段、数据段、堆和栈。代码段(TextSegment):存放程序的执行代码,即编译器编译完成的机器码数据段(DataSegment):初始化的全局变量和静态变量(读写)堆(Heap):动态内存分配的区域(如使用malloc申请内存)栈(Stack):用于存放函数的局部变量、调用返回地址等现在来看看main函数是怎么一步步执行的。对于每一个函数调用,进程都会留出部分栈空间,来保存该函数所有的变量和变量值。这些空间称为“栈帧”。在main函数的栈帧中,a和b作为局部变量被保存,如图3所示。▲图3调用函数swap时,将创建新的栈帧,如图4所示。每次函数调用都会创建新的栈帧,该栈帧用来维护函数所有的变量和值。swap函数的栈帧中,a和b同样是局部变量,只不过其值是地址,而且还可以对该地址的变量值进行修改。这样才能实现对a和b的交换。swap函数执行完后,其栈帧会被清空。▲图4如果swap函数不传递变量地址#include<stdio.h>voidswap(inta,intb){inttemp=a;a=b;b=temp;printf("Adressofais%p\n",&a);}intmain(){inta=10,b=20;printf("Adressofais%p\n",&a);swap(a,b);printf("a=%d\n",a);}▲图5可以看到,a的地址是不同的,且无法实现a和b交换。来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈