1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main() {
  4. #define LEN (4)
  5. (定义函数的(字符数)长度为4}
  6. int *p_int;
  7. {指针变量 指向int再往前三个位置整数的地址}
  8. int a[] = { 0, 0, 0, 0 };
  9. {定义变量int 为一个数列aa数列包含4个值都为0}
  10. p_int = (int*)malloc(LEN * sizeof(int));
  11. {指针读取int地址,int地址定义为:指针变量指向内存中长度为4乘以inta[]字节数列的积;}
  12. for (int i = 0; i < LEN; i++) {
  13. { 循环 赋值变量i,当i=a数列中的任意一个0,而且小于LEN长度,那么i执行自加1;}
  14. p_int[i] = i;
  15. {指针指向读取数列i的地址;}
  16. *(p_int + i) = p_int[i] + 1;
  17. {指针指向读取顺序加1的地址;}
  18. }
  19. for (int i = 0; i < LEN; i++) {
  20. {循环以上for循环;}
  21. printf("p_int[%d] = %d\n", i, p_int[i]);
  22. {输出int的十进制地址,换行输出i数列指向的地址;}
  23. }
  24. for (int i = 1; i < 5; i++) {
  25. {当LEN5时,i1开始循环自加1}
  26. printf("p_int[%d] = %d\n", -i, p_int[-i]);
  27. {输出int的十进制地址,换行输出i数列指向的反向地址;}
  28. }
  29. free(p_int);
  30. 未分配地址;
  31. return 0;
  32. 返回
  33. }

代码2-1:动态内存分配基础
IGSV}L~@MOO(`F@SL]3A_6I.png
程序运行结果显示
陌生词句:
LEN的含义
LEN为函数,
功能是返回文本字符串中的字符数,语法格式为LEN(text),text为待要查找其长度的文本,此函数用 于双字节字符
int*代表的是int型的指针。声明的变量就叫指针变量。
存放地址的变量称为指针变量。指针变量是一种特殊的变量,不同于一般 的变 量,变量存放的是数据本身,而指针变量存放的是数据的地址。
![]YRY@`T{3B{T3SFAM[$YFD.png](https://cdn.nlark.com/yuque/0/2022/png/257750/1653012896963-76c5945f-07ee-42d4-b531-2d828f4b4fac.png#clientId=u0cc197a4-9a99-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=291&id=u05787923&margin=%5Bobject%20Object%5D&name=%5DYRY%40%60T%7B3B%7BT3SFAM%5B%24YFD.png&originHeight=291&originWidth=725&originalType=binary&ratio=1&rotation=0&showTitle=false&size=80291&status=done&style=none&taskId=u2f479695-00d9-4d1a-8da8-c3b38af709f&title=&width=725)
扩展资料:
对变量a的访问有两种方式:
一、直接按地址0X065FDF4H找到a的存储单元,从而对变量a进行访问;
二、按系统为p=&a分配的地址先找到P=&a,然后根据P, &a的值(即变量a地址 0X065FDF4H)找到变量a在内存中的存储单元,从而对变量a进行访问。对于前
一种访问方式称为直接访问方式,后一种访问方式称为间接访问方式。
如果一个指针变量存放的是某个对象的地址,则称这个指针变量指向该对象。在
C++程序设计中,指针变量只有确定了指向才有意义。
malloc(内存,分配内存)
sizeof(字节)
free(可以理解为未分配的)

Access Read-Only Memory

  1. 计算机编程语言大致可分为两种:解释型和编译型。
  2. C 语言属于后者,简单 来说就是程序代码中必须不包含任何编译错误的情况下才能执行。
  3. 前面 的内容中我们简单介绍过符号表是什么,通过代码 1 - 3 深入来讲解一下:

    1. 对于第 5 行,我们可以将 int const 划分为两部分,
  • 首先 int 定义了类型,然后 const 对其进行约束,这个约束就是只读(read-only),
  • 其次在编译阶段,由于符号表存在,那么 const 约束会持续生效,在运行期符号表已经不存在,那么就可以通过特殊的方式对其进行修改。
  • 使用指针可以完成修改常量的任务
  • 需要特别注意,这样的设计并不是 C 的缺陷,而是有意为之。 ```c

    include

int main() { int a = 1; int const b = 2;

int *p_int = &a;
printf("a = %d\n", *p_int);

p_int = (int *)&b;
*p_int = 3;
printf("b = %d\n", b);

return 0;

} ``` 代码1-3:通过指针修改常量
1653285554(1).png

Malloc & Free - 图3
图4:指针修改变量示意图