1、 null
2、 遇到“expression must be a modifiable lvalue”错误时,往往是因为试图对不可修改的表达式执行赋值操作。此时应核查赋值左侧是否为合法的左值,例如普通变量,而非常量、字面量或临时对象。
3、 新建一个指针变量:unsigned char *dat,令其指向 data 所在地址,后续所有相关操作统一通过该指针完成即可。
4、 表达式必须是可修改的左值;而数组名 A 在定义后即代表一段固定大小的连续内存块,其本身并非变量,因此不支持 A++ 这类自增操作——这本质上是对不可修改左值的非法修改。正确做法是定义一个指向数组元素的指针(如 unsigned char *p = A;),再通过对该指针进行 p++ 或 p += n 等运算来实现遍历或偏移访问,从而绕过直接操作数组名这一受限左值。

5、 补充资料:
6、 指针的使用需严格遵守语法规则与编程规范
7、 指针机制虽基础,但其核心能力可被更高层次地封装为引用类型。尽管多数语言支持指针(C语言为其典型代表),但不少现代语言对其施加了严格限制。例如,Java 明确摒弃了原始指针,转而采用受控的引用机制,在保障安全性的同时增强程序的健壮性与可维护性。
8、 指针具备高度灵活性,可在生命周期内多次重新赋值,动态切换所指向的对象;而引用一旦完成初始化,便永久绑定于初始对象,不可重绑定。在某些关键场景中,引用具有不可替代性——比如操作符重载时,若需支持链式调用(如 a = b = c)或返回可被赋值的目标,就必须返回引用类型,以确保表达式语义完整且左值属性得以延续。
9、 指针本质上是一个专门用于保存内存地址的变量,逻辑上独立于其所指向的数据,既可更改自身存储的地址值,也可通过解引用修改目标地址中的内容。
10、 指针是一种以存储内存地址为核心功能的特殊变量。










