当前位置: 首页 > article >正文

从零开始学C++:30分钟掌握基础

从零开始学习C基础知识C是一种高效、灵活的编程语言广泛应用于系统开发、游戏引擎和科学计算等领域。作为初学者你需要掌握核心概念来构建坚实基础。下面我将逐步讲解基础知识并提供简单代码示例帮助你理解。整个过程从安装环境到编写第一个程序确保内容真实可靠。1.C简介与环境设置什么是CC是C语言的扩展支持面向对象编程OOP提供高性能和底层内存控制。它由Bjarne Stroustrup在1980年代开发常用于操作系统、嵌入式系统等。环境设置你需要一个编译器如GCC或Visual Studio和文本编辑器如VS Code。安装步骤下载并安装MinGWWindows或XcodeMac。配置环境变量PATH。测试安装打开终端输入g --version应显示版本号。2.第一个C程序Hello WorldC程序以main函数为入口点。下面是一个简单示例#include iostream // 引入输入输出库 using namespace std; // 使用标准命名空间 int main() { cout Hello, World! endl; // 输出文本 return 0; // 程序结束 }解释#include iostream包含输入输出功能。using namespace std避免重复写std::cout。cout ...输出内容到屏幕。endl换行符。编译运行保存为hello.cpp。终端运行g hello.cpp -o hello编译。运行./helloWindows用hello.exe。3.变量与数据类型C是静态类型语言变量必须先声明再使用。基本数据类型整型int整数如$5$short短整数long长整数。浮点型float单精度浮点数如$3.14$double双精度浮点数。字符型char单个字符如A。布尔型bool真或假true或false。声明变量int age 25; // 整数变量 double price 99.99; // 双精度浮点数 char grade A; // 字符 bool isPassed true; // 布尔值数学表达式在代码中可以使用运算符如$$, $-$, $*$, $/$。例如int a 10; int b 5; int sum a b; // sum 154.运算符C支持多种运算符用于计算和比较算术运算符$$, $-$, $*$, $/$, $%$取模。int result 10 % 3; // result 1 (因为 $10 \div 3 3 \times 3 1$)关系运算符$$, $!$, $$, $$, $$, $$。bool isEqual (5 5); // true逻辑运算符与||或!非。bool condition (age 18) (isPassed); // 如果age 18 且 isPassed为真5.控制语句控制程序流程包括条件语句和循环。条件语句if-elseint score 85; if (score 90) { cout 优秀 endl; } else if (score 60) { cout 及格 endl; } else { cout 不及格 endl; }循环语句for循环用于固定次数迭代。for (int i 0; i 5; i) { // i从0开始到i 5即$i \in [0, 4]$ cout 迭代次数: i endl; }while循环条件为真时重复执行。int count 0; while (count 3) { cout 计数: count endl; count; }6.函数函数是代码块用于执行特定任务提高代码复用性。定义函数// 函数声明返回类型 函数名(参数) int add(int a, int b) { return a b; // 返回a b的值 }调用函数int result add(3, 4); // result 7 cout 和: result endl;函数参数可以传递值或引用引用用表示。7.数组数组用于存储多个相同类型的元素。声明数组int numbers[5] {1, 2, 3, 4, 5}; // 大小为5的整型数组访问元素索引从0开始。cout 第一个元素: numbers[0] endl; // 输出1遍历数组使用for循环for (int i 0; i 5; i) { cout numbers[i] ; } // 输出: 1 2 3 4 58.简单综合示例下面是一个完整程序计算数组元素的平均值#include iostream using namespace std; double average(int arr[], int size) { double sum 0; for (int i 0; i size; i) { sum arr[i]; // 累加元素 } return sum / size; // 返回平均值 } int main() { int data[] {10, 20, 30, 40, 50}; int n sizeof(data) / sizeof(data[0]); // 计算数组大小 double avg average(data, n); cout 平均值: avg endl; // 输出: 30 return 0; }下一步建议练习尝试编写程序解决简单问题如计算阶乘$n!$其中$n! n \times (n-1) \times \cdots \times 1$。资源推荐书籍《C Primer》或在线教程如cplusplus.com。常见错误注意语法细节如分号结尾和变量作用域。通过以上内容你已经掌握了C的基础知识。坚持练习逐步探索高级主题如指针、类和模板如果有疑问欢迎进一步提问。

相关文章:

从零开始学C++:30分钟掌握基础

从零开始学习C:基础知识C是一种高效、灵活的编程语言,广泛应用于系统开发、游戏引擎和科学计算等领域。作为初学者,你需要掌握核心概念来构建坚实基础。下面我将逐步讲解基础知识,并提供简单代码示例帮助你理解。整个过程从安装环…...

如何在Windows上快速部署Android应用:APK Installer完整操作指南

如何在Windows上快速部署Android应用:APK Installer完整操作指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行Andr…...

终极指南:AMD显卡用户如何轻松玩转kohya_ss AI模型训练

终极指南:AMD显卡用户如何轻松玩转kohya_ss AI模型训练 【免费下载链接】kohya_ss 项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss 你是否拥有AMD显卡,却苦于找不到好用的AI模型训练工具?好消息来了!kohya_s…...

C++核心:构造、析构与拷贝构造全解析

C 类的默认成员函数:构造、析构与拷贝构造1. 构造函数 (Constructor)作用:在对象创建时初始化成员变量,分配资源特点:函数名与类名相同,无返回类型可重载(支持不同参数列表)默认构造函数&#x…...

一键备份QQ空间十年记忆:GetQzonehistory免费开源工具完整指南

一键备份QQ空间十年记忆:GetQzonehistory免费开源工具完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否还记得十年前在QQ空间写下第一条说说的心情&#xff1f…...

MIUI自动任务工具完整指南:如何轻松实现小米社区自动化签到

MIUI自动任务工具完整指南:如何轻松实现小米社区自动化签到 【免费下载链接】miui-auto-tasks 一个自动化完成小米社区任务的脚本 项目地址: https://gitcode.com/gh_mirrors/mi/miui-auto-tasks 你是否厌倦了每天手动打开小米社区APP,重复点击签…...

第 9 课:堆(Heap)—— 解决 Top K 问题的神器,优先级队列的底层实现

这是面试绝对高频考点,没有之一。几乎所有 "找前 K 个最大 / 最小元素" 的问题,最优解都是堆。这一课你会明白:堆是专门为 "快速获取最值" 这个单一需求设计的数据结构,它用最简单的结构,实现了最…...

统计假设检验入门:原理、应用与Python实现

1. 统计假设检验入门指南在数据分析的世界里,原始数据本身就像一堆未经雕琢的钻石原石——它们蕴含着价值,但需要专业的切割和打磨才能展现真正的光彩。统计假设检验就是我们用来"切割"数据的专业工具之一。作为一名从业多年的数据分析师&…...

HDFS 数据块(Block)机制深度解析:从原理到实战

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…...

从Opal到Pyrite:深入解析TCG存储安全标准的演进与选型

1. 从机械硬盘到自加密:存储安全的技术演进 记得十年前我第一次接触企业级数据安全时,大多数公司还在使用传统的机械硬盘配合软件加密方案。每次服务器重启都要等待漫长的解密过程,性能损耗高达30%以上。直到2012年第一次接触到支持TCG Opal标…...

【YOLOv5改进实战】BiFPN加权融合:从理论到代码,实现目标检测精度飞跃

1. BiFPN为什么能成为目标检测的"涨点神器"? 第一次接触BiFPN是在处理工业质检项目时遇到的痛点——小目标漏检率居高不下。当时试过各种数据增强和调参手段,效果都不理想,直到尝试用BiFPN替换原生的PANet,mAP直接提升了…...

RAGFlow源码解析-2、从源码构架ragflow v0.25.0镜像

一、背景 官方 RAGFlow 提供了标准的 Docker 镜像 infiniflow/ragflow:v0.25.0,但当我们对 Python 后端或 Web 前端进行了自定义修改(主要是DOC_ENGINE和关系数据库都换成seekdb)后,需要重新打包镜像。 本文记录了从零开始构建自定义镜像 lt/ragflow:0.25.0 并成功部署的…...

数学分析学习路径全解析(2024.04.20)

1. 数学分析学习路径全景图 数学分析作为现代数学的基石,常常让初学者望而生畏。我见过太多同学在图书馆抱着厚厚的教材一筹莫展,也辅导过不少考研学生如何突破学习瓶颈。经过这些年的教学实践,我总结出一个黄金法则:选对路径比盲…...

OceanGPT/OceanGym:基于AI与强化学习的海洋智能体仿真训练平台

1. 项目概述:当大模型遇上海洋模拟器最近在AI和海洋科学交叉领域,一个名为“OceanGPT/OceanGym”的项目引起了我的注意。乍一看,这像是一个将大型语言模型(GPT)与海洋环境模拟(Gym)结合的尝试&a…...

spring ai alibaba原理源码分析(一)-架构

简介 spring ai alibaba是java的ai agent框架&#xff0c;本系列将深入剖析 Spring AI Alibaba 的源码实现与核心原理&#xff0c;不仅指导agent的开发&#xff0c;更为了改造框架&#xff0c;增加新特性 系列内容&#xff1a; 系列(一) 架构 本文<< 系列(二) agent…...

TestDisk PhotoRec:专业级数据恢复工具如何拯救你的丢失文件与分区

TestDisk & PhotoRec&#xff1a;专业级数据恢复工具如何拯救你的丢失文件与分区 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 在数字时代&#xff0c;数据恢复工具TestDisk和PhotoRec已成为技术爱好者…...

移动端架构演进与选型

移动端架构演进与选型&#xff1a;从单体到模块化的技术探索 移动互联网的快速发展对移动端架构提出了更高要求。从早期的单体架构到如今的模块化、组件化设计&#xff0c;移动端架构的演进始终围绕性能、可维护性和动态化展开。面对业务复杂度的提升&#xff0c;如何选择合适…...

Arm Cortex-A55浮点与SIMD架构深度解析

1. Cortex-A55浮点与SIMD架构概述在移动计算和嵌入式系统领域&#xff0c;Arm Cortex-A55作为一款高效的中端处理器核心&#xff0c;其浮点运算单元(FPU)和单指令多数据(SIMD)扩展功能对性能有着决定性影响。A55的浮点架构支持从半精度(16位)到双精度(64位)的多种数据格式&…...

BilldDesk终极指南:打破远程控制边界,开启跨平台协作新纪元![特殊字符]

BilldDesk终极指南&#xff1a;打破远程控制边界&#xff0c;开启跨平台协作新纪元&#xff01;&#x1f680; 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 还…...

GPU加速与树模型在制造业数据科学中的应用

1. 制造业数据科学中的GPU加速训练概述在半导体制造和芯片测试领域&#xff0c;每天产生的结构化数据量通常达到TB级别。以某8英寸晶圆厂为例&#xff0c;单条产线每月可产生超过500万条测试记录&#xff0c;每条记录包含300-500个特征参数。面对如此庞大的数据规模&#xff0c…...

Rust智能指针BoxRcArc使用场景

Rust作为一门注重内存安全的系统级编程语言&#xff0c;其所有权机制是核心特性之一。然而在实际开发中&#xff0c;有时需要更灵活地管理数据生命周期或共享数据&#xff0c;这时智能指针便成为关键工具。Rust提供了多种智能指针类型&#xff0c;其中Box、Rc和Arc是最常用的三…...

如何在5分钟内让PS4游戏体验翻倍?GoldHEN作弊管理器深度解析

如何在5分钟内让PS4游戏体验翻倍&#xff1f;GoldHEN作弊管理器深度解析 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为游戏中的难关卡住而烦恼吗&#xff1f;想要体验《血…...

6G时代AI原生网络与数字孪生技术实践

1. 无线通信行业的AI原生革命5G商用化进程尚未完全铺开&#xff0c;6G研发的号角却已吹响。作为深耕通信行业十五年的技术老兵&#xff0c;我亲眼见证了从3G到4G的过渡期&#xff0c;运营商和设备商们手忙脚乱地应对流量洪流&#xff1b;也经历了5G标准制定阶段&#xff0c;各家…...

基于多模态大模型的手机自动化新范式:从视觉理解到精准操作

1. 项目概述&#xff1a;当你的手机学会自己“点”屏幕 最近在跟几个做移动端测试和自动化的朋友聊天&#xff0c;大家普遍头疼一个问题&#xff1a;现在App功能越来越复杂&#xff0c;UI元素动态加载、嵌套层级深、甚至有些组件压根不暴露可访问性信息&#xff0c;传统的基于控…...

DDrawCompat:三步搞定Windows经典游戏兼容性问题的终极方案

DDrawCompat&#xff1a;三步搞定Windows经典游戏兼容性问题的终极方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/D…...

深度解析:基于异构计算的工业级AI视频中台架构,如何实现GB28181/RTSP跨平台部署与源码交付?

在安防行业进入智能化深水区的今天&#xff0c;开发者面临的痛点已从“如何调通视频流”转向“如何适配碎片化的底层硬件”。面对 NVIDIA GPU、瑞芯微 NPU、华为海思、算能等异构芯片&#xff0c;集成商往往需要投入海量人力进行 SDK 二次封装和驱动调试。 本文将从架构师视角…...

Legacy-iOS-Kit终极指南:如何让旧款iOS设备重获新生

Legacy-iOS-Kit终极指南&#xff1a;如何让旧款iOS设备重获新生 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit Le…...

让ai执行多轮行动可以把任务变成限定长度的操作,让ai填空,比如我3d模型可以参数化全部给ai,ai返回修改后完全的模型

这个思路其实在多个领域都有对应的研究工作。我找到了一些相关的论文&#xff1a; PaperAuthorsSummaryCraftsMan3D: High-fidelity Mesh Generation with 3D Native Generation and Interactive Geometry RefinerTencent AI Lab et al.用迭代refiner来优化3D几何——生成初始…...

16位混合架构DAC设计:高速高精度转换技术解析

1. 混合架构DAC设计概述在当今的无线通信和视频处理系统中&#xff0c;数字模拟转换器(DAC)作为连接数字信号处理与模拟世界的关键接口&#xff0c;其性能直接影响整个系统的表现。传统DAC架构往往需要在分辨率、速度和功耗之间做出妥协&#xff0c;而混合架构的出现为解决这一…...

3大架构决策:如何通过插件化设计让JD-GUI成为Java逆向工程的首选工具

3大架构决策&#xff1a;如何通过插件化设计让JD-GUI成为Java逆向工程的首选工具 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui 在Java逆向工程领域&#xff0c;JD-GUI凭借其卓越的插件化架构&#xf…...