news 2026/6/13 2:26:30

小白学C指针 *

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白学C指针 *

1.&取地址符 - “在哪里?”

inta=10;// a 是个变量,值是 10&a// 这是 a 的地址(门牌号),比如 0x7ffeeb0b1234

比喻

  • a= 你家的电视机(值)
  • &a= 你家的地址(可以找到电视机的位置)

2.*星号 - “是什么?”

(1) 声明指针时:

int*p;// p 是一个指针,能指向 int 类型数据的地址

(2) 解引用时(取指针指向的值):

inta=10;int*p=&a;// p 保存了 a 的地址*p=20;// 找到 p 指向的位置,把那里的值改成 20// 现在 a 变成 20 了!

比喻

  • p= 一张写着地址的纸条
  • *p= 按照纸条地址去房子里拿东西(或放东西)

3.完整例子,一句话解释

#include<stdio.h>intmain(){inta=10;// 变量 a,值是 10int*p=&a;// p 保存了 a 的地址printf("a的值: %d\n",a);// 10printf("a的地址: %p\n",&a);// 地址1printf("p的值: %p\n",p);// 地址1(和上面一样)printf("*p的值: %d\n",*p);// 10*p=99;// 通过 p 找到 a,改成 99printf("现在a是: %d\n",a);// 99return0;}

4.一句话口诀

& 变量 → 地址(取地址) * 指针 → 值(解引用) 声明时:int *p → p是个指针 使用时:*p = 10 → 找到p指向的地方,放个10

日常类比

  • 你家:a
  • 你家地址:&a
  • 快递单(写着地址):p
  • 按快递单找到你家:*p

记住:&取地址*取内容。一个往“里”看,一个往“外”看。


那么有的时候int星号p int和星号之间有的时候有空格,有的时候空格在星号和p之间,这是什么意思?

没区别!纯粹是代码风格问题,编译器完全不在乎空格在哪里。

几种写法的意思完全相同

int*p;// 常见写法:强调 *p 是一个整数int*p;// C++风格:强调 p 是一个整型指针int*p;// 中间派int*p;// 紧凑派(不推荐)

但!有个陷阱要特别注意:

// 错误理解:两个变量都是指针?int*p1,p2;// 其实只有 p1 是指针,p2 是普通整数!// 正确写法(想要两个指针):int*p1,*p2;// 两个都是指针// 更好的写法(避免混淆):int*p1;int*p2;// 分开写,清晰

为什么有不同风格?

  1. int *p(C程序员常用):
int*p;*p=10;// 一致:都是 *p
  • 想法:*p这个整体是int类型
  • 更适合理解:*p = 10(解引用得到整数)
  1. int* p(C++程序员常用):
int*p;p=&a;// p 本身是指针类型
  • 想法:p的类型是int*(整型指针)
  • 更适合理解:int*是一种类型

给你的建议

  • 初学者用int *p(更符合C传统)
  • 每行只声明一个指针变量,避免混淆
  • 保持团队代码风格一致

重要区别不在空格,在变量名前面的星号个数

int*p;// 一级指针int**pp;// 二级指针(指向指针的指针)

记住:编译器只看星号*在不在,不看空格在哪里。空格只是让人读起来舒服些。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 20:59:38

一篇文章说透FunctionCall,MCP和Skill

关于大模型生态中新出现的“Skill”&#xff08;技能&#xff09;&#xff0c;核心指的是Anthropic为其Claude模型推出的 “Claude Skills”。你可以将其理解为一种模块化、可复用的AI能力扩展包&#xff0c;它让AI从一个“会聊天的助手”升级为能自动化执行专业任务的“打工人…

作者头像 李华
网站建设 2026/6/12 17:00:50

深度学习毕设选题推荐:基于python-CNN机器学习对胡萝卜是否新鲜识别基于python-CNN深度学习对胡萝卜是否新鲜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/12 22:58:05

Qwen2-VL大模型完全指南:从架构到训练的全流程解析(建议收藏)

Qwen2-VL模型由视觉编码器、适配器和语言模型三部分组成&#xff0c;核心创新包括Naive Dynamic Resolution机制处理任意分辨率图像&#xff0c;2D-RoPE替代传统位置编码&#xff0c;动态Token生成及22压缩层优化内存。训练分三阶段&#xff1a;先冻结LLM训练ViT&#xff0c;再…

作者头像 李华
网站建设 2026/6/10 18:39:02

2025年AI行业薪资全解析:不同专业如何进入AI领域拿高薪?

文章分析了2025年AI行业就业趋势&#xff0c;指出AI岗位暴涨5倍但高端人才稀缺。详细列举了AI科学家、算法工程师等岗位薪资(月薪2.5万-12.7万)&#xff0c;以及进入AI行业所需的专业背景和学历要求。建议计算机、数学等专业学生通过深造进入核心岗位&#xff0c;其他专业可通过…

作者头像 李华
网站建设 2026/6/10 1:46:29

AI 当主程还能远程开发?TRAE SOLO 的实用体验与cpolar内网突破

TRAE SOLO 的核心功能是作为 AI 开发辅助工具&#xff0c;能自动拆解项目任务、分配开发逻辑&#xff0c;支持 SOLO 模式让 AI 主导开发流程&#xff0c;同时可切换为普通 IDE 模式。它适合程序员、创业团队、远程协作团队等群体&#xff0c;优点在于能减少重复性工作、提升开发…

作者头像 李华