转计算机架构01-C语言学习01
计划以后转到计算机架构方向上去系统学习一遍C语言基础参考教材-C程序设计语言机械工业出版社的计算机黑书并且结合B站教程来学习1.win安装编译器与配置vscode参考【C语言环境设置 | Windows安装编译器和VS Code】 https://www.bilibili.com/video/BV112z3YUEmU/?share_sourcecopy_webvd_source8541a01b50589c05f56714cfb5fda7ff注意别下载其他C插件不然vscode里的PATH很可能被其他插件的某些功能覆盖掉然后编译不了如果提前下载了vscode重启插件就能解决编译不了的问题。2.C语言基础语法2.1 参考并复现【《C程序设计语言》-序言部分先把C语言简单用起来】 https://www.bilibili.com/video/BV1nC4y1e77d/?share_sourcecopy_webvd_source8541a01b50589c05f56714cfb5fda7ff第一章 快速上手温度转换-变量与算术表达式#include stdio.h int main(){ float fahr,celsius; int lower,upper,step; lower0;upper300;step20; fahrlower; while(fahrupper){ celsius(5.0/9) * (fahr-32); printf(%3.0f\t%6.1f\n,fahr,celsius); fahrfahrstep; } return 0; }for语句#include stdio.h int main(){ float fahr; for(fahr0.0;fahr300.0;fahrfahr20){ printf(%3f\t%6.1f\n,fahr,(5.0/9)*(fahr-32)); } return 0; }符号常量 #define 一般大写#include stdio.h #define STEP 20 #define UPPER 300 #define LOWER 0 int main(){ float fahr; for(fahrLOWER;fahrUPPER;fahrfahrSTEP){ printf(%3f\t%6.1f\n,fahr,(5.0/9)*(fahr-32)); } return 0; }字符输入输出#include stdio.h int main(){ int c; cgetchar(); while (c!EOF) { /* code */ putchar(c);cgetchar(); } return 0; }getchar()会逐个读取输入的字符当输入的字符流结束时getchar()会返回符号常量EOF当未输入时程序会停在getchar()处等待输入。一次输入很多字符getchar()会依次读取。数组统计 字符与数字 个数注意在算术表达式里char类型的变量常量会被提升为int类型。只是在算术中啊而且也只是暂时提升还有单字符用单引号字符串用双引号#include stdio.h int main(){ int c,nwhite,nother,i; int ndigit[10]; /*定义时的10是指的元素个数*/ for(i0;i9;i){ndigit[i] 0;}/*初始化数组*/ nwhitenother0; while ((cgetchar())!EOF) { /*char和int在算术运算时都按int*/ if(c0 c9){ndigit[c-0];} else if (c || c\t || c\n) { nwhite; } else nother; } for(i0;i9;i){printf(%d\t,ndigit[i]);} printf(%d\t,nwhite); printf(%d\t,nother); return 0; }EOF在win上用ctrlZenter触发表示文本流结束。结果如图字符数组C里好像没有字符串但是有字符数组注意函数形参传入 数组 改变的是真正的那个数组的值。接下来要输入一组文本行并且打印最长文本行#include stdio.h int getaline(char s[]); void linecopy(char a[],char b[]); int main(){ int len; /*当前行长度*/ int maxlen; /*最大的行长度*/ char line[1000]; /*当前行内容*/ char maxline[1000]; /*最长行的内容*/ maxlen 0; while ((lengetaline(line))0) { if (lenmaxlen) { maxlen len; linecopy(maxline,line); } } if (maxlen0) { printf(%s\t%d\n,maxline,maxlen); } return 0; } int getaline(char s[]){ int c,i; for ( i 0; (i 999)((cgetchar())!EOF)(c!\n); i) { s[i]c;} if (c\n) { s[i]c;i; } s[i]\0; return i; } void linecopy(char a[],char b[]){ int i0; while ((a[i]b[i])!\0) { i; } }结果第2章 类型、运算符与表达式2.1基本数据类型数据类型 int、char、float、double整型限定符short、long此时可省略int类型限定符signed、unsigned用于char或any整型就是说浮点的不能喽除了long double2.2枚举类型enum MANBA {A0,B}不赋值的话默认按012......;部分赋值默认递增。2.3 constconst修饰符表示变量不能被修改修饰数组的话函数调用也不能改。2.4自动转换类型自动类型转换一般都由简单变复杂但是float不能变成double虽然由简单变复杂但是在涉及到有无符号时变复杂意味着往前加0有符号数的意义和大小也因此可能会变。第3章 控制流略第4章 函数与程序结构嵌入式基础里学过一些略static 修饰 静态变量作用于外部变量使其他文件的函数不能访问作用于函数使其他文件的函数不能调用作用域函数内的变量使它一直存在仅受一次初始化。条件包含编译预处理一般用在头文件#ifndef XXX_H #define XXX_H #endif第5章 指针与数组*从对应地址中取值对变量取地址数组名a/a[]是一个地址(指针)a[i]是具体值二维数组、指针的数组、指向数组的指针第6章 结构同嵌入式

相关新闻

【信息科学与工程学】计算机科学与自动化-——第十五篇云计算 12 公有云里的“多Region + 多AZ“ 01 算法04

【信息科学与工程学】计算机科学与自动化-——第十五篇云计算 12 公有云里的“多Region + 多AZ“ 01 算法04

编号 类别 模型配方 单/双/多Region+单/双/多AZ IaaS/PaaS/SaaS/其他 功能 应用场景 算法/模型名称 数据结构列表 算法逐步思考推理的数学方程式及参数列表及参数的值范围及各类边界条件 底层硬件需求 时序数学方程式 误差/算法复杂度 底层规律/理论定理 典型应用…

2026/7/16 9:02:14阅读更多 →
零成本构建:利用Docsify与Gitee Pages打造轻量级项目文档中心

零成本构建:利用Docsify与Gitee Pages打造轻量级项目文档中心

1. 为什么选择DocsifyGitee Pages组合? 如果你是一名开发者,肯定遇到过这样的烦恼:项目文档散落在各处,团队成员找不到最新版本;或者想搭建个人技术博客,却被服务器配置和域名备案劝退。这时候,…

2026/7/16 9:02:14阅读更多 →
oeAware-scenario架构深度解析:从插件系统到数据分析全流程

oeAware-scenario架构深度解析:从插件系统到数据分析全流程

oeAware-scenario架构深度解析:从插件系统到数据分析全流程 【免费下载链接】oeAware-scenario Provides low-overhead scenario awareness 项目地址: https://gitcode.com/openeuler/oeAware-scenario 前往项目官网免费下载:https://ar.openeule…

2026/7/16 9:02:14阅读更多 →
mevi与eBPF对比:两种Linux内存监控技术的终极指南

mevi与eBPF对比:两种Linux内存监控技术的终极指南

mevi与eBPF对比:两种Linux内存监控技术的终极指南 【免费下载链接】mevi A memory visualizer in Rust (ptrace userfaultfd) 项目地址: https://gitcode.com/gh_mirrors/me/mevi 在Linux系统监控领域,内存可视化是开发者理解程序内存使用情况的…

2026/7/16 20:39:46阅读更多 →
构造函数的深度解析

构造函数的深度解析

目录 摘要: 一:概念 二:分类 三:使用 1:无参构造函数 2:含参构造函数 3:全缺省构造函数 4:多个构造函数 5:总结 四:默认生成的构造函数的作用 1&…

2026/7/16 20:39:46阅读更多 →
如何轻松修复损坏的MP4视频文件?untrunc开源工具深度解析

如何轻松修复损坏的MP4视频文件?untrunc开源工具深度解析

如何轻松修复损坏的MP4视频文件?untrunc开源工具深度解析 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否遇到过这样的情况:精心拍摄的…

2026/7/16 20:39:46阅读更多 →
Howl编辑器高级Bundle开发:创建完整的语言支持包

Howl编辑器高级Bundle开发:创建完整的语言支持包

Howl编辑器高级Bundle开发:创建完整的语言支持包 【免费下载链接】howl The Howl Editor 项目地址: https://gitcode.com/gh_mirrors/ho/howl Howl编辑器是一款轻量级且高度可扩展的文本编辑器,通过Bundle机制实现强大的语言支持。本文将带您深入…

2026/7/16 20:39:46阅读更多 →
Home Assistant Floor Plan Generator与Sweet Home 3D联动技巧:模型准备与灯光命名规范

Home Assistant Floor Plan Generator与Sweet Home 3D联动技巧:模型准备与灯光命名规范

Home Assistant Floor Plan Generator与Sweet Home 3D联动技巧:模型准备与灯光命名规范 【免费下载链接】home-assistant-floor-plan Home Assistant Floor Plan Generator Plugin For Sweet Home 3D 项目地址: https://gitcode.com/gh_mirrors/ho/home-assistant…

2026/7/16 20:39:46阅读更多 →
mevi部署指南:远程服务器内存监控的完整配置方案

mevi部署指南:远程服务器内存监控的完整配置方案

mevi部署指南:远程服务器内存监控的完整配置方案 【免费下载链接】mevi A memory visualizer in Rust (ptrace userfaultfd) 项目地址: https://gitcode.com/gh_mirrors/me/mevi 想要在远程服务器上实现高效的内存监控吗?mevi 是一款基于 Rust 开…

2026/7/16 20:34:46阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →