#include<stdio.h>
#include<stdlib.h>
int main() {
#define LEN (4)
(定义函数的(字符数)长度为4}
int *p_int;
{指针变量 指向int再往前三个位置整数的地址}
int a[] = { 0, 0, 0, 0 };
{定义变量int 为一个数列a,a数列包含4个值都为0}
p_int = (int*)malloc(LEN * sizeof(int));
{指针读取int地址,int地址定义为:指针变量指向内存中长度为4乘以inta[]字节数列的积;}
for (int i = 0; i < LEN; i++) {
{ 循环 赋值变量i,当i=a数列中的任意一个0,而且小于LEN长度,那么i执行自加1;}
p_int[i] = i;
{指针指向读取数列i的地址;}
*(p_int + i) = p_int[i] + 1;
{指针指向读取顺序加1的地址;}
}
for (int i = 0; i < LEN; i++) {
{循环以上for循环;}
printf("p_int[%d] = %d\n", i, p_int[i]);
{输出int的十进制地址,换行输出i数列指向的地址;}
}
for (int i = 1; i < 5; i++) {
{当LEN为5时,i从1开始循环自加1}
printf("p_int[%d] = %d\n", -i, p_int[-i]);
{输出int的十进制地址,换行输出i数列指向的反向地址;}
}
free(p_int);
未分配地址;
return 0;
返回
}
代码2-1:动态内存分配基础
程序运行结果显示
陌生词句:
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(可以理解为未分配的)