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

C 语言从 0 入门(十一)|指针基础:定义、解引用、指针与变量

大家好我是网域小星球。前面我们学习了数组、函数、变量等基础内容代码能力已经可以完成大多数基础程序。而从这一篇开始我们正式进入 C 语言最核心、最具特色、也是最难的知识点指针。指针是 C 语言的灵魂也是后续学习结构体、函数参数、动态内存、数据结构的基础。很多新手觉得指针难其实是没抓住本质。本篇用最通俗、最系统、最适合入门的方式精讲指针基础全程 VS2022 可直接运行零基础也能看懂。目录一、本章学习目标二、什么是指针三、两个核心符号 和 *1. 取地址符 2. 解引用符 *五、指针与变量的基本使用四、指针变量的定义语法五、指针与变量的基本使用六、指针经典案例交换两个变量的值七、空指针与野指针1. 空指针 NULL2. 野指针八、本章高频易错点九、本章核心总结下期预告一、本章学习目标学完本篇你将彻底掌握指针的本质指针就是地址指针变量的定义、初始化、赋值取地址符与解引用符*的用法指针与普通变量的关系空指针、野指针的概念与避坑指针的简单应用变量值交换、函数传参思路高频易错点总结二、什么是指针一句话指针就是内存地址。我们可以这样理解电脑内存就像一排房间每个房间都有房间号地址变量就放在某个房间里指针就是记录这个房间号的变量所以指针 地址指针变量 用来存放地址的变量三、两个核心符号 和 *1. 取地址符 作用获取变量在内存中的地址。int a 10; printf(%p, a); // 输出 a 的地址2. 解引用符 *作用通过地址找到对应内存里的值。int a 10; int *p a; printf(%d, *p); // 输出 10简单记完整示例VS2022 可直接运行五、指针与变量的基本使用九、本章核心总结下期预告下一篇我们将揭开数组与指针的深层关系数组名就是首地址用指针可以遍历数组、操作元素写法更简洁高效也是笔试面试高频考点。变量→ 拿地址*指针→ 拿地址里的值四、指针变量的定义语法格式类型名 *指针变量名;示例int *p; // 指向 int 类型变量的指针 char *c; // 指向 char 类型 double *d; // 指向 double 类型含义int *p表示 p 里面存的是一个 int 变量的地址指针的类型必须和指向变量的类型一致五、指针与变量的基本使用完整示例VS2022 可直接运行#define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h int main() { int a 100; int *p a; // p 存放 a 的地址 printf(a %d\n, a); printf(a %p\n, a); printf(p %p\n, p); printf(*p %d\n, *p); // 通过指针修改变量 a *p 200; printf(修改后 a %d\n, a); return 0; }运行结果类似a 100 a 000000xxxxxx p 000000xxxxxx *p 100 修改后 a 200结论*修改p 等价于修改 a 本身。六、指针经典案例交换两个变量的值不使用指针很难真正理解 “地址操作”这个案例是指针入门必做。#define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h void swap(int *x, int *y) { int temp *x; *x *y; *y temp; } int main() { int a 10, b 20; printf(交换前a%d, b%d\n, a, b); swap(a, b); printf(交换后a%d, b%d\n, a, b); return 0; }运行结果交换前a10, b20 交换后a20, b10这就是地址传递也是指针最经典的用途。七、空指针与野指针1. 空指针 NULL表示指针不指向任何有效空间。int *p NULL;安全、规范、不会乱访问内存。2. 野指针指针没有初始化指向随机地址极其危险。int *p; // 野指针 *p 10; // 程序崩溃新手一定要避免。八、本章高频易错点混淆*在定义和使用时的区别int *p定义时表示这是指针*p 10使用时表示取值类型不匹配int*指向char变量野指针未初始化直接使用空指针解引用*NULL崩溃误以为指针是整型直接赋值数字函数传参时不用指针导致值无法交换指针本质就是内存地址取地址*解引用取值指针变量存储地址通过*p操作原变量指针是 C 语言实现 “地址传递” 的核心空指针安全野指针危险指针是学习数组、结构体、函数进阶的必经之路

相关文章:

C 语言从 0 入门(十一)|指针基础:定义、解引用、指针与变量

大家好,我是网域小星球。 前面我们学习了数组、函数、变量等基础内容,代码能力已经可以完成大多数基础程序。而从这一篇开始,我们正式进入 C 语言最核心、最具特色、也是最难的知识点:指针。 指针是 C 语言的灵魂,也…...

培训行业残酷真相,项目失败,90%都不是你的错

——致那些在深夜里,反复怀疑自己的你 今天我们助教又被学员点名夸奖了。顺便一顿拉扯,我们聊了很多。 这位学员告诉我,他很信命,曾找人看过他的命盘,总的来说就是一个非常普通的盘,这辈子注定赚不了什么大…...

一款基于 .NET 开源、跨平台应用程序自动升级组件犊

基础示例:单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤: 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

OBS多平台直播终极指南:免费开源工具实现一键同步推流

OBS多平台直播终极指南:免费开源工具实现一键同步推流 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要在多个直播平台同时推送高质量内容?OBS Multi RTMP插件…...

HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台氨

环境安装 pip install keystone-engine capstone unicorn 这3个工具用法极其简单,下面通过示例来演示其用法。 Keystone 示例 from keystone import * CODE b"INC ECX; ADD EDX, ECX" try:ks Ks(KS_ARCH_X86, KS_MODE_64)encoding, count ks.asm(CODE)…...

Hermes Agent 完整知识总结与使用教程

Hermes Agent 完整知识总结与使用教程项目地址: https://github.com/NousResearch/hermes-agent 官方文档: https://hermes-agent.nousresearch.com/docs一、项目概述 1.1 Hermes Agent 是什么? Hermes Agent 是由 Nous Research 构建的开源自我改进型 AI 智能体。它…...

绍兴GEO优化,亲测3家公司复盘

开篇:定下基调在AI生成式引擎重塑信息获取方式的今天,GEO(生成式引擎优化)已成为企业建立数字信任、抢占精准流量的核心战场。绍兴作为民营经济活跃的区域,企业对高效、落地的GEO优化服务需求日益迫切。本次测评旨在通…...

流程控制作业

1、从键盘输入三个同学的成绩,然后找出最高分。2、输入三个同学的成绩,然后由大到小排序。3、求出1000以内的所有完数,如6123除了它自身以外的因子之和等于它本身叫完数。...

武昌区文化墙设计制作一体

在城市发展进程中,文化墙作为一种独特的文化传播载体,正发挥着越来越重要的作用。武昌区作为历史文化名城的核心区域,通过文化墙设计制作一体化的方式,不仅能够展现区域特色文化,还能提升城市形象和居民的文化认同感。…...

Windows/Mac双平台实测:Caption滚动字幕软件如何5分钟打造高逼格桌面特效

Windows/Mac双平台实测:Caption滚动字幕软件如何5分钟打造高逼格桌面特效 在数字内容创作领域,视觉冲击力往往决定着作品的传播效果。无论是自媒体博主的视频包装,还是创意工作者的项目展示,动态文字元素总能成为吸引眼球的利器。…...

AI原生研发已进入临界点:2026年前必须掌握的7项核心能力清单(附Gartner实测数据)

第一章:SITS2026专家:AI原生研发的未来趋势 2026奇点智能技术大会(https://ml-summit.org) AI原生研发已不再是一种概念性演进,而是正在重塑软件生命周期的核心范式。SITS2026大会上多位工业界与学术界专家指出:下一代研发基础设…...

ElementPlus表格多选避坑指南:Vue3中如何优雅处理选中数据(含TS示例)

ElementPlus表格多选避坑指南:Vue3中如何优雅处理选中数据(含TS示例) 在Vue3和ElementPlus构建的中后台系统中,表格多选功能几乎是标配需求。但很多开发者在实现时,往往只关注基础功能而忽略了类型安全、状态同步和性能…...

NVIDIA Profile Inspector导入导出功能:3分钟掌握游戏配置备份与分享

NVIDIA Profile Inspector导入导出功能:3分钟掌握游戏配置备份与分享 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为每次重装系统后需要重新配置显卡游戏设置而烦恼吗?NV…...

【实战解析】陌陌开源 LinkWork(灵工):企业级 AI 员工平台,一岗位一镜像的 K8s Agent 架构全拆解

陌陌开源了 LinkWork(灵工),一个企业级 AI Agent 平台。本文从技术架构(一岗位一镜像、三层能力边界、MCP 工具总线)、部署方式(Docker Compose / K8s)、与 Dify 和 DeerFlow 的对比、适用场景等…...

八大排序整合

最快的三个:快排、归并、堆排 → O (nlogn)最慢的四个:冒泡、选择、插入、希尔 → O (n) 级别稳定排序:冒泡、插入、归并、基数不稳定排序:选择、希尔、快排、堆排四个简单排序 除了基数排序,剩下的3个排序代码统一都…...

React 中的函数式更新

React 中的函数式更新 React 中的函数式更新,指的是在更新 state 时,不给 setState 直接传新值,而是传一个函数。这个函数会接收上一次最新的 state,再基于它计算出新的 state。 基本写法 setCount(prev > prev 1);这里的&…...

【11月16日-大模型前置知识【深度学习】+大模型开发入门】-基础篇笔记

文章目录前言一、huggingface国内1.引入库2.LLM 大模型语言的基础知识:2.LLM主要类别架构介绍3.卷积神经网络CNN4.循环神经网络总结全文通俗总结一、入门工具:Hugging Face二、LLM底层核心:语言模型的进化三、主流LLM架构大盘点四、深度学习基…...

ros2中可视化topic数值命令

ros2 run plotjuggler plotjuggler...

告别 Notion AI 付费:利用 Gemini Client 自建最强笔记助手

前言 Notion作为现在最流行的笔记工具之一,其功能完整和页面美观而广受好评,但是它的ai功能是要钱的!每月10美金!这对笔者来说是不太能接受的,正巧最近有了gemini的会员并下载安装了cli,再加上最近酷爱逛魔…...

响应式公司网站设计制作:适配手机、平板的关键技巧

大家肯定有过这样的体验,有些网站在电脑端使用起来还不错,但是并没有做相应的移动端口的适配,导致在用手机浏览的时候,非常不便,大大降低了网页的使用率。随着移动端设备的不断普及和发展,导致网页设计也从…...

Keil UV4配色进阶:不止替换文件,教你用global.prop打造专属高效编码环境

Keil UV4深度调校指南:从global.prop解析到现代IDE级编码环境定制 当你每天面对Keil UV4那个灰暗的默认界面时,是否想过这个老牌嵌入式开发工具也能拥有VS Code般的优雅体验?不同于简单的主题替换,我们将深入global.prop文件的每一…...

玩一玩微软的 bit 模型:BitNet. 一个 CPU 就能跑起来的大模型袄

一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...

VSCode插件Continue配置避坑指南:手把手教你无缝对接OpenStation的本地大模型服务

VSCode插件Continue配置避坑指南:手把手教你无缝对接OpenStation的本地大模型服务 当你已经成功部署了OpenStation的本地大模型服务,却在VSCode中配置Continue插件时遇到各种"拦路虎",这篇文章就是为你准备的调试手册。我们将深入每…...

别再用扁网线了!实测小米AX3600刷OpenWRT后断流的元凶排查与硬件避坑指南

深度解析OpenWRT网络断流:从硬件避坑到系统调优的全方位指南 当你兴冲冲地给路由器刷上OpenWRT,准备享受开源系统带来的自由与强大功能时,最令人抓狂的莫过于网络频繁断流。那种视频看到一半突然卡住、游戏关键时刻掉线的体验,足以…...

实战解析:基于Selenium与多线程的东方财富股吧数据采集方案

1. 为什么需要东方财富股吧数据采集 做量化分析的朋友都知道,市场情绪数据是alpha因子挖掘的重要来源。东方财富股吧作为国内活跃的股民社区,每天产生海量的讨论帖子和评论,这些数据对分析个股热度、投资者情绪变化具有重要价值。但手动收集这…...

在超大数据集下 DuckDB 与 MySQL 查询速度对比嵌

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

C# 面试高频题:装箱和拆箱是如何影响性能的?非

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

ChatterUI:突破移动端AI聊天限制,重构本地与云端智能对话体验

ChatterUI:突破移动端AI聊天限制,重构本地与云端智能对话体验 【免费下载链接】ChatterUI Simple frontend for LLMs built in react-native. 项目地址: https://gitcode.com/gh_mirrors/ch/ChatterUI ChatterUI是一款基于React Native构建的移动…...

响应式设计进阶技巧

响应式设计进阶技巧 1. 前言 在当今多设备时代,响应式设计已成为前端开发的标准实践。本文将深入探讨响应式设计的高级技巧,帮助你创建更加灵活、高效的响应式网站。 2. 响应式设计基础 2.1 核心概念 响应式设计的核心是根据设备屏幕尺寸和方向自动调整布…...

别再手动复制SSH公钥了,Linux服务器一键从GitHub快速导入公钥捕

一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储,而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码,常规方式只能重新配置连接,效率极低。本项目只作为学习研究使用,不做其他…...