C语言-章节 1:变量与数据类型 ——「未初始化的诅咒」

news2025/2/22 7:35:33

        在那神秘且广袤无垠的「比特大陆」上,阳光奋力地穿过「内存森林」中错综复杂的代码枝叶缝隙,洒下一片片斑驳陆离、如梦似幻的光影。林间的空气里,弥漫着一股浓郁的十六进制锈蚀味,仿佛在诉说着这片森林中隐藏的古老秘密。

        一位零基础的少年,满怀着对未知世界的无限好奇,不经意间失足掉入了这片充满奇幻色彩与重重危险的森林。少年环顾四周,心中既紧张又兴奋,他知道,一场奇妙的冒险即将拉开帷幕。

        “救、救命!” 一声颤抖且充满恐惧的呼喊,如同一把利刃,瞬间刺破了森林的寂静。少年的眼神瞬间变得锐利起来,他循着声音的方向狂奔而去。

        眼前的景象让少年倒吸一口凉气,只见一只半透明的蓝色精灵正被一群面目狰狞的「野怪 Null」围追堵截。这些野怪的身体完全由乱码拼凑而成,眼眶中空洞地闪烁着 0xCCCCCCCC 的幽光,仿佛来自另一个黑暗的世界。

        “抓住她!未初始化的变量是我们的粮食!” 野怪首领声嘶力竭地挥舞着锈迹斑斑的 void* 长矛,疯狂地嘶吼着。

        少年心中一紧,他深知情况危急,来不及多想,迅速抄起地上的一根树枝,在沙地上急速划出一道神秘的咒文:

int a = 10;   //赋予Inta清晰的记忆
//少年:哼,看我用这初始化的力量救你!

        刹那间,一道金光冲天而起,精灵那原本半透明的轮廓瞬间凝实起来,化作一位扎着双马尾的可爱少女,胸前悬浮着闪烁着光芒的 10

        “我叫 Inta!” 她慌乱地抹掉眼泪,眼中却依然透露出一丝迷茫,“但… 我好像忘记了自己的使命…”

        然而,命运似乎总爱捉弄人。话音未落,Inta 的身体突然开始扭曲变形,胸前的数字 10 如同被一股神秘的力量拉扯,瞬间坍缩成诡异的 -858993460。野怪们见状,发出贪婪的嚎叫:“看啊!她没完全初始化!”

        少年猛然醒悟,心中暗叫不好,他毫不犹豫地咬破手指,在代码上进行补全:

int a = 0;  //彻底清除残留数据
//少年:差点大意了,得把残留数据清除干净!

        奇迹再次发生,精灵恢复了澄澈的模样,她的掌心迸发出 sizeof(int) 剑气,如同一把利刃,瞬间逼退了野怪。

        “听着,”Inta 微微喘息道,“在内存森林,声明变量就像签订契约 ——” 说着,她展开一卷散发着神秘光芒的羊皮纸,上面浮现出金色的条款:

变量生存法则

  1. 未经初始化的变量会被「乱码幽灵」寄生(int a; ❌)
  2. 局部变量需当场赋初值(int b = 0; ✅)
  3. 全局变量默认被 编译器之神 祝福为 0(但依赖此特性是亵渎!)

        就在少年和 Inta 稍作喘息之时,地面突然裂开一道巨大的深渊,一行血红色的警告赫然浮现:

warning C4700: uninitialized local variable 'a' used

        “快跑!”Inta 眼疾手快,一把拽住少年,纵身跃入地下河。身后传来野怪坠入「未定义行为悬崖」的凄惨叫声,仿佛是对它们贪婪的惩罚。

        在地下河的漂流过程中,Inta 决定进一步给少年讲解变量与数据类型的知识。

        突然,前方出现了一片散发着奇异蓝光的水域,当他们靠近时,水中浮现出一个巨大的数字 3.14,周围还有一群闪烁着微光的小生物围绕着它。

        “这就是浮点型变量的区域。”Inta 解释道,“浮点型就像这片水域中的波浪,能够表示带有小数部分的数值。比如这个 3.14,它可能代表着某种神秘的比例。”

        说着,Inta 用手指在水面上划出代码:

float pi = 3.14;  // 定义一个浮点型变量
// Inta:看,这就是浮点型变量的初始化,它能精确地表示小数。

        随着代码的出现,那些围绕着 3.14 的小生物变得更加活跃,仿佛在庆祝代码的诞生。

        接着,他们来到了一个被五彩光芒笼罩的洞穴。洞穴的石壁上刻满了各种字符,每一个字符都散发着独特的气息。

        “这里是字符型变量的世界。”Inta 说道,“字符型变量就像这些石壁上的字符,每一个都有自己独特的意义。”

        Inta 拿起一块石头,在地上写下代码:

char letter = 'A';  // 定义一个字符型变量
// Inta:字符型变量用单引号括起来,它可以表示一个单独的字符。

        当代码写完,洞穴中的字符光芒大作,仿佛在欢迎新成员的加入。

        少年听得入神,他感觉自己对变量与数据类型有了更深刻的理解。

        漂流结束后,他们来到了一个神秘的殿堂,殿堂的墙壁上闪烁着神秘的光芒,上面浮现出一段代码:

#include <stdio.h>

int main() {
    // 整型变量
    int num = 10;
    short score = 90;
    long population = 1234567890;
    long long bigNum = 1234567890123456;

    // 浮点型变量
    float price = 9.99;
    double pi = 3.1415926535;

    // 字符型变量
    char grade = 'A';

    // 输出变量的值
    printf("num = %d\n", num);
    printf("score = %hd\n", score);
    printf("population = %ld\n", population);
    printf("bigNum = %lld\n", bigNum);
    printf("price = %.2f\n", price);
    printf("pi = %.10lf\n", pi);
    printf("grade = %c\n", grade);

    return 0;
}

        Inta 看着这段代码,对少年说:“你看,这段代码展示了我们刚刚学到的整型、浮点型和字符型变量。intshortlonglong long 这些都是不同类型的整型变量,它们能表示不同范围的整数;floatdouble 是浮点型变量,能处理小数;而 char 则用来表示单个字符。最后,通过 printf 函数,我们可以把这些变量的值输出出来,就好像是把它们展示给这个世界看一样。”

        少年仔细地看着代码,心中豁然开朗。他仿佛看到了代码中的变量们一个个鲜活起来,在自己的小世界里各司其职。

        突然,殿堂的地面开始震动,代码发出耀眼的光芒,一个声音响起:“既然你已经理解了这些变量与数据类型,那就让代码运行起来,证明你的实力吧!”

        少年深吸一口气,集中精神,仿佛与代码融为一体。随着他的意念一动,代码开始自动运行,一行行输出结果出现在殿堂的中央:

num = 10
score = 90
population = 1234567890
bigNum = 1234567890123456
price = 9.99
pi = 3.1415926535
grade = A

        光芒逐渐散去,殿堂恢复了平静。Inta 露出了欣慰的笑容,对少年说:“你成功了!你已经迈出了成为伟大程序员的第一步。”

        少年看着那些输出结果,心中充满了成就感。他知道,在这「比特大陆」上,还有更多的挑战等待着他,但他已经做好了准备,要用代码的力量去探索未知,战胜一切困难。

编程启示录

“变量如新生的婴儿,若不赋予明确的意义,混沌便会占据它的灵魂。初始化是程序员对变量的第一份承诺,永远警惕 int a; 这样的空白契约。无论是整型、浮点型还是字符型变量,都需要我们用心去初始化,用 =0memset() 为内存空间举行净化仪式,让代码世界充满秩序与光明。同时,合理运用不同类型的变量,能让我们更精准地描述和处理现实世界中的各种数据。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…

闭源大语言模型的怎么增强:提示工程 检索增强生成 智能体

闭源大语言模型的怎么增强 提示工程 检索增强生成 智能体 核心原理 提示工程:通过设计和优化提示词,引导大语言模型进行上下文学习和分解式思考,激发模型自身的思维和推理能力,使模型更好地理解和生成文本,增强其泛用性和解决问题的能力。检索增强生成:结合检索的准确…

【图像加密解密】空间混沌序列的图像加密解密算法复现(含相关性检验)【Matlab完整源码 2期】

1、说明 本文给出详细完整代码、完整的实验报告和PPT。 环境&#xff1a;MATLAB2019a 复现文献&#xff1a;[1]孙福艳,吕宗旺.Digital image encryption with chaotic map lattices[J].Chinese Physics B,2011,20(04):136-142. 2、部分报告内容 3 部分源码与运行步骤 3.1 部…

QxOrm生成json

下载Qxorm-1.5版本 使用vs打开项目&#xff0c;直接生成即可&#xff1a; lib目录中会生成dll和lib文件 新建Qt项目使用Qxorm: 将QxOrm中上面三个目录拷贝到新建的Qt项目中 pro文件添加使用QxOrm第三方库 INCLUDEPATH $$PWD/include/ LIBS -L"$$PWD/lib" LIBS…

ASP.NET Core Web应用(.NET9.0)读取数据库表记录并显示到页面

1.创建ASP.NET Core Web应用 选择.NET9.0框架 安装SqlClient依赖包 2.实现数据库记录读取: 引用数据库操作类命名空间 创建查询记录结构类 查询数据并返回数据集合 3.前端遍历数据并动态生成表格显示 生成结果:

uniapp商城之首页模块

文章目录 前言一、自定义导航栏1.静态结构2.修改页面配置3.组件安全区适配二、通用轮播组件1. 静态结构组件2.自动导入全局组件3.首页轮播图数据获取三、首页分类1.静态结构2.首页获取分类数据并渲染四、热门推荐1.静态结构2.首页获取推荐数据并渲染3.首页跳转详细推荐页五、猜…

以若依移动端版为基础,实现uniapp的flowable流程管理

1.前言 此代码是若依移动端版为基础&#xff0c;实现flowable流程管理&#xff0c;支持H5、APP和微信小程序三端。其中&#xff0c;APP是在安卓在雷电模拟器环境下完成的&#xff0c;其他环境未测试&#xff0c;此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分…

C++:高度平衡二叉搜索树(AVLTree) [数据结构]

目录 一、AVL树 二、AVL树的理解 1.AVL树节点的定义 2.AVL树的插入 2.1更新平衡因子 3.AVL树的旋转 三、AVL的检查 四、完整代码实现 一、AVL树 AVL树是什么&#xff1f;我们对 map / multimap / set / multiset 进行了简单的介绍&#xff0c;可以发现&#xff0c;这几…

2D 游戏艺术、动画和光照

原文&#xff1a;https://unity.com/resources/2d-game-art-animation-lighting-for-artists-ebook 笔记 用Tilemap瓷砖大小为1单元&#xff0c;人物大小在0.5~2单元 PPU &#xff1a;单位像素 pixels per unit 2160 4K分辨率/ 正交相机size*2 完整屏幕显示像素点 有骨骼动…

4、C#基于.net framework的应用开发实战编程 - 测试(四、二) - 编程手把手系列文章...

四、 测试&#xff1b; 四&#xff0e;二、实际运行&#xff1b; 在应用调试完毕&#xff0c;Bug基本解决的时候就需要对应用进行实际运行来进行查看使用体验及分发的准备工作。 1、 运行设置&#xff1b; 在启动项目上右键属性&#xff0c;点击生成&#xff0c;将顶部的配置改…

栈与队列(C语言版)

文章目录 栈与队列1. 栈基本操作实现(基于链表)代码运行结果 应用场景 2. 队列基本操作实现代码运行结果 应用场景 栈与队列 1. 栈 栈是一种操作受限的线性结构。操作受限体现在&#xff0c;栈只能在一端添加和删除元素&#xff0c;符合后进先出 ( LIFO ) 的特性&#xff0c;…

【算法专场】哈希表

目录 前言 哈希表 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 算法分析 算法代码 面试题 01.02. 判定是否互为字符重排 ​编辑算法分析 算法代码 217. 存在重复元素 算法分析 算法代码 219. 存在重复元素 II 算法分析 算法代码 解法二 算法代码 算法…

【设计模式】【行为型模式】迭代器模式(Iterator)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…

mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办

第一步&#xff1a;sudo ps aux | grep fsck 打开mac控制台输入如下指令&#xff0c;我们看到会出现两个进程&#xff0c;看进程是root的这个 sudo ps aux|grep fsck 第二步&#xff1a;杀死进程 在第一步基础上我们知道不显示u盘的进程是&#xff1a;62319&#xff0c;我们…

如何下载AndroidStudio的依赖的 jar,arr文件到本地

一、通过jitpack.io 下载依赖库 若需要下载 com.github.xxxxx:yy-zzz:0.0.2 的 jar则 https://jitpack.io/com/github/xxxxx/yy-zzz/0.0.2/ 下会列出如下build.logyy-zzz-0.0.2.jaryy-zzz-0.0.2.pomyy-zzz-0.0.2.pom.md5yy-zzz-0.0.2.pom.sha1jar 的下载路径为https://jitpack…

CEF132编译指南 MacOS 篇 - 构建 CEF (六)

1. 引言 经过前面一系列的精心准备&#xff0c;我们已经完成了所有必要的环境配置和源码获取工作。本篇作为 CEF132 编译指南系列的第六篇&#xff0c;将详细介绍如何在 macOS 系统上构建 CEF132。通过配置正确的编译命令和参数&#xff0c;我们将完成 CEF 的构建工作&#xf…

Python大数据可视化:基于python的电影天堂数据可视化_django+hive

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 电影数据 看板展示 我的信息 摘要 电影天堂数据可视化是…

LLM之循环神经网络(RNN)

在人工智能的领域中&#xff0c;神经网络是推动技术发展的核心力量。今天&#xff0c;让我们深入探讨循环神经网络&#xff08;RNN&#xff09; 一、神经网络基础 &#xff08;1&#xff09;什么是神经网络 神经网络&#xff0c;又称人工神经网络&#xff0c;其设计灵感源于人…

Java:204 基于springboot零食销售商城的设计与实现

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统主要分为管理员和用户、商家。 用户可以使用网站首页的登录注册界面进行在线登录注册&#xff0c;并且注册登录后方可使用系统的各种功能以及购物…

harmonyOS的文件的增、删、读、写相关操作(fs/content)

注意: 操作harmonyOS的文件只能对app沙箱内的文件进行操作 牵扯到两个支持点: fs和content这两个API; 具体的操作方法看下图: 创建文件 //js 引入 import fs from "ohos.files.fs" import featureAbility from "ohos.ability.featureAbility"; // 上下…