这才刚刚开始

第一次写博客,我也不知道怎么写,管它的,我想怎么写就怎么写。想成为一名优秀的程序员,就得学写博客,也是对自己知识的总结和积累。日积月累,厚积薄发,方能成就理想。虽然现实是残酷的,但人总要有点理想,不然活得太没意思了,我还活着,就有必要好好活。

初入android

这是最近前段时间做的基于TCP/IP的Socket短连接文件传送软件,可以在手机上传文件到电脑,具体的代码,总结将在后面的博客中阐述


太好了!👏 你现在正站在编程的“分水岭”上——**指针(Pointer)**。 > 🌟 指针是 C/C++ 最强大、也最让人头疼的概念。 > 但只要你理解了它,你就从“会写代码的人”迈向了“真正懂计算机的人”。 --- ## ✅ 别怕!指针没那么可怕 很多人一听“指针”就害怕,觉得: - “地址?” - “内存?” - “* 和 & 是啥?” 其实—— 👉 **指针的本质非常简单:** > 💡 **指针就是一个存着“地址”的变量。就像快递单上的收货地址。** --- ## 🎯 学习指针的核心建议(6 条黄金法则) --- ### ✅ 1. 先搞懂两个符号:`&` 和 `*` | 符号 | 名字 | 意思 | 例子 | |------|------|------|------| | `&` | 取地址符 | “告诉我这个变量在哪儿” | `&a` → a 的地址 | | `*` | 解引用符 | “去那个地址里拿数据” | `*p` → p 指向的那个值 | #### 举个生活例子🌰: 你朋友叫小明,住在“朝阳区幸福路 100 号”。 ```cpp int a = 10; int *p = &a; // p 存的是 a 的地址 ``` - `a` 是房间里的数字:10 - `&a` 是房间的门牌号:比如 `0x1000` - `p` 是一张纸条,写着:“我住 0x1000” - `*p` 就是打开门,看到里面是 10 📌 所以: ```cpp cout << a; // 输出 10 cout << *p; // 也输出 10(因为 p 指向 a) ``` --- ### ✅ 2. 动手画图!画图!画图! > 🔥 **90% 的人学不会指针,是因为只用脑子想,不动手画。** 每当你看到指针代码,请立刻画出来: ```cpp int a = 10; int *p = &a; *p = 20; ``` 画成这样👇: ``` +-----+ +--------+ | a | | p | | 10 | | 0x1000 | +-----+ +--------+ ↑ └── 指向 a 的地址 ``` 然后执行 `*p = 20` 后: ``` +-----+ +--------+ | a | | p | | 20 | | 0x1000 | +-----+ +--------+ ``` 👉 你一眼就看懂了:**通过指针修改了 a 的值!** --- ### ✅ 3. 写最简单的代码,一步步测试 不要一上来就学“链表”、“动态内存”,先从这三行开始: ```cpp #include <iostream> using namespace std; int main() { int a = 5; int *p = &a; // p 指向 a cout << *p << endl; // 输出 5 return 0; } ``` ✅ 你能看懂每一行,才算入门。 然后再试: ```cpp *p = 100; cout << a << endl; // 输出 100?为什么? ``` 👉 因为 `*p` 和 `a` 是同一个东西的不同叫法! --- ### ✅ 4. 理解“指针类型”的意义 ```cpp int *p; // p 是一个指针,指向 int 类型 char *c; // c 是一个指针,指向 char 类型 ``` 📌 类型决定了: - 这个指针指向什么类型的变量 - `p+1` 会跳多少字节(int 跳 4 字节,char 跳 1 字节) 先不用深究,记住: > “int* 就是用来指向 int 的指针” --- ### ✅ 5. 多问“它存的是什么?它指向的是什么?” 遇到任何指针,都问自己两个问题: | 问题 | 示例 | |------|------| | `p` 存的是什么? | 地址(比如 `0x1000`) | | `*p` 是什么? | 那个地址里的值(比如 `10`) | ✅ 练习: ```cpp int a = 20; int *p = &a; int **q = &p; // q 是指向指针的指针 ``` 问: - `p` 存的是什么?→ `&a`(a 的地址) - `*p` 是什么?→ `a` 的值 → `20` - `q` 存的是什么?→ `&p`(p 的地址) - `*q` 是什么?→ `p` 的值 → `&a` - `**q` 是什么?→ `*(*q)` = `*(&a)` = `a` = `20` 是不是像套娃?但一层层拆开就能懂! --- ### ✅ 6. 不求快,只求懂 指针不是一天学会的。大多数人要: - 第一次听:懵 - 第二次看:有点懂 - 第三次写:哦!!原来是这样! 📌 所以: - 不要和别人比进度 - 把一道题反复看三遍 - 自己动手改代码、运行、观察结果 这才是真正的学习。 --- ## 📚 推荐练习顺序(从易到难) | 阶段 | 练习内容 | 目标 | |------|----------|------| | 1 | 基本定义:`int *p = &a;` | 理解 `&` 和 `*` | | 2 | 用指针交换两个数 | 学会通过指针修改变量 | | 3 | 指针与数组:`arr[i] == *(arr+i)` | 理解数组名是指针 | | 4 | 字符串指针:`char *s = "hello";` | 学会遍历字符串 | | 5 | 指针函数:`void swap(int *a, int *b)` | 学会传地址调用 | --- ## 💡 经典小练习:用指针交换两个数 ```cpp #include <iostream> using namespace std; void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 10, y = 20; cout << "交换前:" << x << " " << y << endl; swap(&x, &y); cout << "交换后:" << x << " " << y << endl; return 0; } ``` 📌 关键:`swap(&x, &y)` 把地址传进去,函数里用 `*a` 修改原值。 --- ## ✅ 总结一句话 > **指针 = 地址 + 解引用** 你只要记住: - `&` 是“我要地址” - `*` 是“我去取值” - 画图帮你理解 - 动手写代码验证 你一定能掌握! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值