C+Primer+Plus学习笔记-第一章

C primer plus 复习题答案(上) C primer plus 复习题答案 第一章 初识C语言 ​ 对编程而言,可移植性意味着什么 在软件工程中,可移植性,又译为移植性、可携性,是指使用高阶语言写成的软件,在不同环境下,是否具备可以被重复使用的性质。一般来说,软件是否具备可移植性的衡量标准,在于进行软件移植时,需要付出多少工时为代价。具备高可移植性的软件,在移植到不同系统平台时,并不需要做太多事情,因此能够减少软件开发及布署时的成本。为了使软件具备高度可移植性,程序员需要使应用程序界面抽象化以及模组化。 以低阶语言,例如汇编语言,写成的软 阅读详情

 

1.就编程而言,可移植性代表什么?

c是一门可移植性语言,意味着在一个系统上写的c程序,在其他系统上可以不经修改,或有较少的修改则可运行。如果有修改的必要,通常是将其引入的头文件中的几项内容。

解释源代码文件、目标代码文件和可执行文件的区别

2.编译器的任务是什么?

编译是一个程序,其工作是将源代码转为可执行代码,可执行代码是用计算机本机语言或机器语言表示的代码。

3.链接器的任务是什么?

c编译器从c库中获取最终程序加入代码。库中包含很多标准例程供开发者使用,链接器的程序将库例程引入,大多系统上,编译器自动运行链接器

4.计算机工作原理

现代计算机可分为几个部件:

(1)中央处理器,或称CPU,负责处理程序,CPU的工作可大致概括如下:它从内存获取一个指令,并执行该指令,然后从内存中获取下一个指令并执行,一个1000兆的CPU一秒钟内大概可重复1亿次这样的工作。CPU有自己的工作区,该工作区由若干个寄存器组成,每个寄存器都可以保存一个数。一个寄存器保存下一条指令的内存地址,CPU使用该信息获取下一条指令。获取一条指令后,CPU在另一个寄存器中保存该指令并将第一个寄存器的值更新为下一条指令的地址

(2)随机访问存储器,或称内存、RAM,在计算机运行时用于保存文件和程序

(3)永久存储器,一般是硬盘,及时计算机关机也可以保存文件和程序

(4)还有各种外围设备,如:鼠标、键盘、显示器

5.两数相加步骤

(1)将内存单元为2000的数字复制到寄存器1中

(2)将内存单元为2008的数字复制到寄存器2中

(3)将寄存器2中的数与寄存器1中的数相加,答案留在寄存器1中

(4)将寄存器1中的内容复制到内存单元2009

6.源代码文件、目标代码文件和可执行文件的区别

c编程的基本策略,是使用程序将源代码转换为可执行文件,此文件包含可以运行的机器语言代码。c分两步完成这一工作:编译和链接。

编译器将源代码转为中间代码,链接器将此中间代码与其他代码相结合来生成可执行文件。c使用被划分为两部分的这一方法使程序便于模块化。可以编译各个模块,然后使用链接器将编译后的各个模块链接起来。这样,如果需要改变一个模块,则不必重新编译其他模块,同时,链接器将程序与预编译的库代码结合起来。

中间文件的形式有多种选择。最一般的选择,是将源代码转为机器语言代码,将结果放置在一个目标代码文件中。虽然目标代码文件包含机器语言代码,但该文件还不能执行。目标文件包含源代码的转换结果,但它还不是一个完整的程序。

目标代码文件中所缺少的第一个元素是一种叫做启动代码的东西,此代码相当于程序与操作下系统之间的接口。第二个元素就是库例程代码。几乎所有c程序都利用标准c库中所包含的例程(称为函数)。目标代码文件一般不包含这一函数的代码,它只包含声明使用的printf()函数指令。实际代码存储在另一个称为“库”的文件中。库文件中包含许多函数的目标代码。

链接器的作用是将这3个元素(目标代码、系统的标准启动代码和库代码)结合到一起,并将他们存放在单个文件,即可执行文件中。对库代码而言,链接器只是从库中提取所使用函数所需要的代码。

目标文件和可执行文件都是由机器语言指令组成的。但目标文件只包含所编写的代码转换成的机器语言,可执行文件包含所使用的库例程及启动代码的机器代码



以上所述有部分来自原作,部分来自本人理解,如有错误的地方,欢迎提出指正和批评

C Primer Plus 学习笔记 半个月的学习总结,通过对C Primer Plus 的学习,可以得到的体会。 立即下载

相关推荐

编译器任务书

对一个C语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。<br>实训背景<br> 编译原理实训与实用编译器的比较<br> 实用编译器比编译原理课程设计要完成的复杂的多<br>

编译器的任务是什么?

总的来说,编译器的任务是将高级语言源代码转换为目标代码或可执行代码,并完成相关的错误检查、代码优化、目标代码生成等任务。语义分析:编译器在完成语法分析后,需要对源代码进行语义分析,以确定程序的含义和行为。代码生成:在完成语义分析后,编译器需要将源代码转换为目标代码或可执行代码。这个过程通常包括代码优化、指令选择、寄存器分配、代码生成等步骤。目标代码生成:在完成代码生成后,编译器需要将目标代码转换为可执行代码或库文件。词法分析:编译器首先需要对源代码进行词法分析,将源代码分解为单个的词法单元或记号。

FairyKunKun的博客 723

SAP FI模块实操:用F-28和F-32搞定客户回款与手动清账,别再让未清项报表一团糟

本文详细解析了SAP FI模块中F-28和F-32事务代码在客户回款与手动清账中的实操应用,帮助财务人员高效管理未清项报表。通过标准清账六步法和手动清账实战技巧,解决因操作不规范导致的账务混乱问题,提升应收账款管理效率。

weixin_30292843的博客 451

C Primer Plus 学习笔记 第1章 初识C语言

C Primer Plus 第1章 初识C语言 读书笔记

m0_71007572的博客 317

langchain入门学习笔记

langchain快速入门

1730

量化爬虫实战:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向思路与Cookie Hook技巧)

本文详细解析了如何通过JS逆向技术获取同花顺问财平台的`hexin-v`参数,包括Cookie Hook技巧和完整解决方案架构。从环境搭建到参数定位,再到生成逻辑逆向,手把手教你突破数据获取限制,为量化交易提供可靠数据支持。

weixin_42557803的博客 398

链接器的任务是什么?

总的来说,链接器的任务是将目标代码文件和库文件组合成可执行文件或共享库,并完成符号解析、符号重定位、符号合并、库文件链接等多个任务。符号重定位:在符号解析完成后,链接器需要对目标代码文件和库文件中的符号进行重定位,以将符号的地址修改为正确的值。库文件链接:在完成符号合并后,链接器需要将库文件链接到目标代码文件中,以将程序所需的库函数和符号添加到程序中。符号合并:在完成符号重定位后,链接器需要将目标代码文件和库文件中的符号进行合并,以确保每个符号只有一个定义。符号合并可以避免符号冲突和重复定义等问题。

FairyKunKun的博客 692

calibre:将calibre 的layer number 转换为实际的laymer 名称(7)

可以使用与版图数据库配套的(Standard Verification Rule Format,标准验证规则格式),在 Calibre DESIGNrev 中加载图层名称。

u013620135的博客 984

深入理解计算机系统 第七章:链接

链接(static & dynamic) 具体实现方法见《深入理解计算机系统 第三版》 仅仅整理一些思路 静态连接 连接器的任务 符号解析 重定位:汇编器生成的代码和数据节都是从地址0开始,需要将每个符号定义与一个内存位置管理,从而重定位 这些节,并修改对这些符号的引用。 三种目标文件: 可重定位目标文件:与其他可重定位目标文件结合,创建一个可执行文件 可执行目标文件 共享目标文件 可重定位文件格式 部分说明: .rodata 只读数据 .symtab 符号表 .rel.text 一个.t

qq_44774850的博客 614

MediaPipe 教程:从安装到应用-全网最全

MediaPipe是Google推出的开源框架,专为构建机器学习管道设计,可以高效处理视频、音频等时间序列数据。本文教程从安装到应用逐步讲解: 安装步骤简单,只需通过pip安装mediapipe包并验证版本; 重点演示人体姿态检测功能,可识别33个身体关键点; 提供基础代码实现,包括视频捕获、关键点检测与可视化; 强调模块化开发,将功能封装成类以提高代码复用性。 教程适合初学者,通过清晰指引和实用代码示例,帮助快速实现计算机视觉应用。

FJN110的博客 1563

数据仓库从明细到汇总:DWD与DWS层建模实战指南

DWS层的“主题”是指业务分析的核心场景,通常分为“用户主题、商品主题、订单主题、营销主题”等。主题的定义需紧密结合业务需求,避免“为了汇总而汇总”。例如,电商平台的核心业务需求包括“用户活跃度分析”“商品销售情况分析”“订单转化分析”,对应的DWS层主题即可定义为“用户主题汇总表”“商品主题汇总表”“订单主题汇总表”。主题定义时需注意“粒度适中”——汇总粒度既不能过细(否则与DWD层重复,失去汇总意义),也不能过粗(否则无法满足细分分析需求)。

2401_83088008的博客 644

Linux(链接器的意义)

本篇文章我们来讲解链接器的意义。链接器(Linker)是计算机编译器系统中的一个重要组成部分,它用于将编译后生成的目标模块(Object Module)链接在一起,生成可执行文件或动态链接库(Dynamic Linking Library)。链接器的主要任务是将符号(Symbol)引用解析到符号定义上,将多个目标模块合并为一个可执行文件或动态链接库,生成符号表(Symbol Table),并对程序代码做最后的检查和优化。

m0_49476241的博客 1333

学Simulink——基于直流电机的建模与控制场景实例:他励直流电机的起动与制动过程仿真

直流电机在工业控制、电动车辆、自动化设备中广泛应用。其中,他励直流电机(Separately Excited DC Motor)因其励磁绕组与电枢绕组分别供电,具有良好的调速性能和启动特性,常用于需要平稳启动和精确控制的场合。在实际应用中,电机的启动过程和制动过程对电网、机械系统以及电机本身都具有重要影响。因此,仿真分析他励直流电机的启动与制动特性,是电机控制设计的重要环节。本文将详细介绍如何使用构建一个他励直流电机的启动与制动过程仿真模型,并通过仿真分析其动态响应。本文详细介绍了如何使用构建一个。

xiaoheshang_123的博客 227

C Primer Plus 学习笔记第一章

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_2975670963的博客 2100

我的世界模组开发——前言

避坑:在开发过程中一定不要过分依赖AI,虽说现在的人工智能很厉害,但是也有很大的弊端,很多AI生成的代码错误百出,还得自己修改,而且像deepseek这种AI的训练数据还停留在一年前,给出的maven仓库地址都是过时的甚至是错误的,开发模组就是要多学习,多看源码,这样开发模组的水平才能越来越高。总而言之,build.gradle文件在我的世界Forge模组开发中扮演了重要的角色,它定义了项目的构建过程、依赖关系和编译选项,为开发者提供了灵活而强大的构建工具。开发工具推荐使用idea,因为可以使用通灵义码。

qq_24992377的博客 2594

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C Primer Plus第一章学习笔记

在动手写程序之前,要在脑中有清晰的思路。想要程序去做什么首先自 己要明确自己想做什么,思考你的程序需要哪些信息,要进行哪些计算和控 制,以及程序应该要报告什么信息。在这一步骤中,不涉及具体的计算机语 言,应该用一般术语来描述问题。

int_coco_xie的博客 871

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【c primer plus】学习笔记-第一章-初识C语言

C primer plus 学习笔记 第一章

Zero_Fiend的博客 890

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C primer plus 学习笔记_第一章 初识C语言

一级标题 二级标题 #include<stdio.h> int main() { int a[20],n; a[0] = a[1] = 1; printf("%d\n%d\n", a[0], a[1]); for (n = 2; n < 20; n++) { a[n] = a[n - 1] + a[n - 2]; printf("%d\n", a[n]); } return 0; } 改进: #include<stdio.h> int main() {

weixin_50475073的博客 986

《C Primer Plus》学习笔记——第一章初识C语言

文章目录七、使用C语言的7个步骤1.定义程序的目标2.设计程序3.编写代码4.编译5.运行程序6.测试和调试程序7.维护和修改代码8.说明八、编程机制1.目标代码文件、可执行文件和库(4)windows IDE(PC)的编译和链接过程2.Unix系统(3)UNIX上C程序的编译和链接过程4.Linux操作系统5.PC的命令行编译器6.集成开发环境(Windows)7.Windows/Linux8....

喜欢打篮球的普通人 570

《c primer plus》学习笔记第一章 :初识c语言

《c primer plus》第一章

qq_66489651的博客 614

C Primer Plus 第一章重点总结——新手学习笔记

C Primer Plus 第一章重点总结——新手学习笔记 硬核知识 c语言优缺点 c语言的使用的七个步骤 源代码文件 连接器

qq_73639533的博客 338

C primer plus(学习笔记)——第一章 初识C语言

通常是用人类语言描述问题和解题思路。这一阶段主要是概念性的认识。

zhang_longwei22的博客 738

《C Primer Plus》学习笔记(第一章到第二章)

第一章:初识C语言 1.1C语言起源 1972,贝尔实验室 丹尼斯.里奇和肯.汤姆逊在开发UNIX操作系统时设计了C语言(B语言基础上设计的)。 1.2C语言的优点: 1.C语言编写的程序更易懂、更可靠。 2.C语言是高效的语言(更接近机器语言)。 3.可移植性强 4。强大而且灵活,用在很多方面 5.面向程序员(对程序员很友好)。 1.3C语言的缺点 1自由度高但也更容易出错,需要小心。 2.运算符多,需要多加注释,否则有时候很难阅读。 1.4编译器的功能 编译器是将高级计算机语言转化为机器语言。 1.5使

XITMan的博客 369

C Primer Plus学习笔记----第一章初识C语言

1.1 C语言起源 1972年 贝尔实验室的Dennis Ritch和Ken Thompson在开发UNIX操作系统时设计了C语言 1.2 C语言特点 c语言设计特性:C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计,用C语言编写的程序更易懂、更可靠。         高效性:C语言充分利用当前计算机的特性,运行速度很快。 可移植性:C语言有可移植的特点,

qq_35314523的博客 925

C++ Primer Plus学习笔记 第一章 01C与C++的不同

声明:本文 1.C++与C语言的不同 C语言:过程性编程(结构化编程技术),强调算法,使问题满足语言,自顶向下(将大型程序分成小型便于管理的任务) C++  : 面向对象编程,强调数据,使语言满足数据。设计与问题的本质特性相对应的数据格式,自下向上的编程(从低级组织如类到高级组织如程序的处理过程) 2.类和对象 类是一种规范,描述了这种新型数据格式(设计与问题的本质特性相对应的数据格式)

wangtiankuo的博客 532

《C Primer Plus》学习笔记—第1章

《C Primer Plus》(第6版)中文版学习笔记

chaofeng426的博客 233
上一篇: C语言中,头文件和源文件的关系(转)
下一篇: C+Primer+Plus学习笔记-第二章
晨光倒影
博客等级 码龄11年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值