C程序设计语言(K&R)第七章学习笔记

K&R学习笔记 第一章 最近上班了,利用上下班的班车时间,我在路上几乎看完了经典名著《C程序设计语言》。看完后的感觉就是:C语言不过如此!短短不到300页内容,就涵盖了C语言的方方面面,(有的内容我也是第一次才注意到)甚至穿插着讲了栈、二叉树、折半查找、快速排序、哈希表等数据结构与算法的内容。代码编写非常精炼,很适合有一定基础的人提高自己的代码水平。值得注意的是,这本书并没有在后面列参考文献或者值得推荐的读物之类的,这种 阅读详情

7.1

        符号常量 EOF 在头文件 <stdio.h> 中定义,其值一般为 -1,但程序中应该使用 EOF 来测试文件是否结束,这样才能保证程序同EOF的特定值无关。

        当文件名用一对尖括号 < 和 > 括起来时,预处理器将在由具体实现定义的有关位置中查找指定的文件(例如,在 UNIX 系统中,文件一般放在目录 /user/include 中)。

C 标准简述-K&R、ANSI、C90、C99 K&R C C 语言最初由 Dennis Rithie 于 1969 年到 1973 年在 AT&T 贝尔实验室开发出来的,主要用于重新实现 Unix 操作系统。此时 C 语言叫做 K&R C(K 是 Kernighan 的首字母,R 是 Rithie 的首字母)。 K&R C 语言和后来标准化的 C 语言有很大的差异,比如 如果函数的返回值为 int,则 int 可省,并且编译器不会有任何警告 int my_function(){ } 也可以写成 my_functio 阅读详情

相关推荐

Chromium实用技巧篇-如何下载指定版本的Chromium(一)

通过本指南,您已成功掌握如何在Windows系统上下载并安装最新版本的Chromium浏览器。我们详细介绍了从进入Chromium官网,到查找最新版本号,再到下载和安装的每一个步骤。通过这些步骤,您不仅能够体验到最新的浏览器功能,还可以参与开源项目的开发,享受高速、稳定、安全的浏览体验。

守城小轩的技术窝棚 1万+

【C语言学习笔记】《C程序设计语言》 第7章(输入与输出)

Warning: 为了避免非零基础人群感到身体不适、头晕恶心、易怒及粗口,请不要查看以下内容。 文章目录第7章 输入与输出7.1 标准输入/输出 第7章 输入与输出 7.1 标准输入/输出 ...

返璞归真的博客 825

SAP PS模块预算控制实战:为什么你的采购订单金额和预算占用对不上?

本文深入解析SAP PS模块中采购订单金额与预算占用偏差的常见问题,揭示承诺成本与实际成本的分流处理机制。通过实战案例和六步定位法,提供发票拆分、跨年度预算等典型场景的解决方案,并分享预防性配置框架和最佳实践,帮助企业有效控制预算偏差。

weixin_30363981的博客 515

C语言第七章重要知识总结

第七章 函数 7.1 分而治之与信息隐藏 模块化程序设计体现了“分而治之”的思想,主要运用功能分解的方法来实现 函数是C语言中模块化程序设计的最小单位 7.2 函数的定义 函数是构成程序的基本模块 (1)标准库函数:如printf()、scanf()等。函数的行为也要符合ANSIC的定义,使用ANSI 的函数库,必须在程序的开头把该函

mmsx2017的博客 1916

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2074

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 241

C程序设计(第五版)谭浩强 学习笔记—重点及易错点(1-5章)

第一章 程序设计与C语言 目录 第一章 程序设计与C语言 一、计算机语言的发展 二、C语言的注释方法 三、程序设计任务 第二章 算法—程序的灵魂 一、程序的组成 二、结构化程序设计的方法 第三章 最简单的C程序设计—顺序程序设计 一、数据类型 二、运算符与表达式 三、数据的输入和输出 第四章 选择结构与条件判断 第五章 循环结构程序设计 第六章 利用数组处理批量数据 ...

lwbCUMT的博客 3万+

OpenMMLab实战指南:从环境搭建到首个检测模型运行

本文是一份详细的OpenMMLab实战指南,重点介绍了如何从零开始搭建环境并运行首个目标检测模型。内容涵盖Miniconda环境配置、PyTorch与CUDA版本匹配、使用MIM工具安装MMCV和MMDetection的核心步骤,并通过RTMDet-tiny模型演示了完整的推理流程,帮助开发者高效入门这一计算机视觉开源算法体系。

weixin_28678151的博客 156

C程序设计(第五版)谭浩强 学习笔记—重点及易错点(第7章-函数)

用函数实现模块化程序设计 目录 用函数实现模块化程序设计 一、定义函数 二、调用函数 三、函数的递归调用 四、数组作为函数参数 五、局部变量和全局变量 六、局部变量的存储类别 七、全局变量的存储类别 八、内部函数和外部函数 一、定义函数 定义函数应包括以下几个内容: (1) 指定函数的名字,以便以后按名调用。 (2) 指定函数的类型,即函数返回值的类型。 (3) 指定...

lwbCUMT的博客 4387

晶圆测试(Wafer Sort)的核心技术与良率提升策略

晶圆测试(Wafer Sort)是芯片制造中的关键“入学考试”,通过探针台与自动测试设备(ATE)对晶圆上的芯片进行功能与参数测试,筛选不合格芯片以控制成本。本文深入解析了其核心技术,包括自动化视觉系统对准、测试流程优化策略,并探讨如何利用测试数据驱动良率提升,展望了DFT与AI智能测试的未来趋势。

e4f5g6h的博客 515

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8721

C++核心准则​NL:命名和布局规则

NL: Naming and layout rules NL:命名和布局规则 Consistent naming and layout are helpful. If for no other reason because it minimizes "my style is better than your style" arguments. However, there are many, many, different styles around and people are passi..

面向对象思考 954

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1052

C程序设计语言 (K&R)

  The C Programming Language,C程序设计语言 (K&R),为C语言的设计者Dennis M. Ritchie和著名的计算机科学家Brian W.Kernighan合著的 一本介绍C语言的权威经典著作,学习c语言至今,第一次读这本书,这本书适合有一定的c语言基础的深入学习。   为什么说不适合初学者,觉得这本书更像一本字典,比如在函数章节,举例代码中用到了下面章...

金色的省略号 1300

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

K&R《C程序设计语言(第2版)》习题解答项目完全解析:106个C语言练习带你从入门到精通

如果你想系统学习C语言,K&R《C程序设计语言(第2版)》习题解答项目是一份不可多得的宝藏资源。这个开源项目收录了Brian W. Kernighan与Dennis M. Ritchie合著经典教材《The C Programming Language》(即K&R)的全部课后习题答案,共106个C语言练习,覆盖8大章节,从Hello World到系统调用一应俱全。无论你是刚接触C语言的新手,还是想

gitblog_00477的博客 662

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

《C语言程序设计(第二版K&R)》学习笔记

《C语言程序设计(第二版K&R)》学习笔记 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了一份《C语言程序设计(第二版K&R)》的本科各学科笔记扫描版本,方便读者学习和查阅。该资源文件为PDF格式,内容详尽,包含了对教材中关键知识点和难点的梳理与总结,有助于加深对C语言程序设计原理的理解与应用。 文件名称:笔记_C语言程序设计(第二版K&R...

gitblog_06706的博客 478

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C 语言程序设计基础——认识 C 语言

C 语言是1972年由美国贝尔实验室的Dennis Rithie(丹尼斯·里奇)和Brain Kernighan(布莱恩·克尼汉) 等人开发的。C 语言经过不断改进,逐步完善。一直到1978年,Dennis Rithie和Brain Kernighan合著了影响深远的名著,(布莱恩·克尼汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)两人简称K&R。) 这本书被 C语言开发者们称为K&R,很多年来被当作 C 语言的非正式的标准说明。

2401_87199769的博客 3101

用VS Code高效调试K&R《C程序设计语言(第2版)》习题解答:C/C++扩展配置与launch.json实战

K&R《C程序设计语言(第2版)》是全球无数C语言学习者的经典入门教材,而跟着书中的习题逐题敲代码、**调试**运行,是真正掌握C语言指针、结构体与位运算的关键。但很多新手卡在了第一步:代码写好了,怎么用 **VS Code** 快速编译并**调试C语言程序**?别担心,本文将带你从零配置 **C/C++扩展** 与 **launch.json**,把 VS Code 变成专属于你的 C 语言调试

gitblog_00354的博客 1127

eslint-plugin-import 的 no-mutable-exports 规则:禁止可变导出绑定,强制 `const` 导出

`import/no-mutable-exports` 是 eslint-plugin-import 提供的一条校验规则,用于禁止通过 `var` 或 `let` 声明并导出(含具名导出、默认导出与重导出)可变绑定,引导开发者统一使用 `const` 导出不可变引用。本文以 [docs/rules/no-mutable-exports.md](https://link.gitcode.com/i/

gitblog_00444的博客 660

K&R C语言程序设计 第二版

K&R C语言程序设计 源码 http://www.docin.com/p-611127875.html http://download.youkuaiyun.com/download/lincoln_2012/7747265 https://wenku.baidu.com/view/50cf34ee856a561252d36fea.html

tianzhijiaozi19的专栏 4676

C程序设计语言(第二版,中文版)K&R

C程序设计语言(第二版,中文版)K&R 【下载地址】C程序设计语言第二版中文版KR 《C程序设计语言(第二版,中文版)》是C语言设计者Brian W. Kernighan和Dennis M. Ritchie的经典著作,全面系统地介绍了标准C语言及其程序设计方法。本书深入浅出,涵盖基本概念、控制流、函数、指针、结构...

gitblog_06717的博客 905

c程序设计语言(k&r版的,C程序设计语言 (K&R)

The C Programming Language,C程序设计语言 (K&R),为C语言的设计者Dennis M. Ritchie和著名的计算机科学家Brian W.Kernighan合著的 一本介绍C语言的权威经典著作,学习c语言至今,第一次读这本书,这本书适合有一定的c语言基础的深入学习。为什么说不适合初学者,觉得这本书更像一本字典,比如在函数章节,举例代码中用到了下面章节的数组,用...

weixin_39975683的博客 1042

C语言标准:从K&R到C23,全面解析C标准的演进与应用

C语言标准的每一次更新都带来了新的特性和改进,使得C语言能够适应不断变化的编程需求。从K&R C到C23,C语言经历了从非正式标准到现代化编程语言的演进过程。无论是操作系统、嵌入式系统,还是高性能计算,C语言都以其高效性、底层控制能力和广泛的应用领域,继续在计算机科学领域占据重要地位。

一只不会编码的程序猿 3475

K&R《C程序设计语言(第2版)》习题解答的Makefile与CI流水线:递归通配符编译与GitHub Actions实战

K&R《C程序设计语言(第2版)》是无数程序员的C语言入门经典,而配套的**习题解答**项目更是自学路上的得力助手。本项目用一套巧妙的**递归通配符Makefile**,就能一键编译全部8章、上百个习题的C源码;再配合**GitHub Actions CI流水线**,每次提交代码后自动完成全量编译校验。本文面向零基础新手,用通俗语言拆解这套构建系统与持续集成的实战细节,让你既能读懂源码,也能亲手跑

gitblog_00271的博客 1049

记一种神奇的C语言语法:K&R C

文章目录记一种神奇的C语言语法:K&R C ——古代C语言函数定义K&R C : identifier-list注意ANSI C : declarator 记一种神奇的C语言语法:K&R C ——古代C语言 信息来源: ANSI和K&R两种函数定义风格-wangweiming-ChinaUnix博客 ANSI和K&R两种函数定义风格_iceburg208的博客-优快云博客 函数定义 K&R C : identifier-list #include &lt

博客标题 1956

《C程序设计语言》读书笔记02: 导言

返回类型 函数名(参数列表)声明部分语句部分return 表达式;函数原型告诉编译器函数的“签名”也是合法的。

4236
上一篇: C程序设计语言(K&R)第六章学习笔记
下一篇: 算法:C语言实现第三章第一节学习笔记
Praker
博客等级 码龄13年 12粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值