对指针作用的理解
程序员文章站
2024-03-07 15:50:15
...
定义变量
int a; //定义一个整型变量a
int *p; //定义了一个整型指针变量p
- 指针有什么用?
存储一个地址。
p = &a; //整型指针p获取了整型变量a的地址
- 指针p指向了整型变量a。
作用:
可以用指针p来操作变量a了。
例如:
{
int a = 10;
int *p;
p = &a;
printf("%d",*p); //输出指针p所指向的内存中的值,这里的*是#间接访问运算符#
}
>>> 10
动态存储方法
malloc(4);
malloc(sizeof(int));
int *p;
p = (int *)malloc(sizeof(int)); //malloc函数返回类型是void *,所以要强制转换
*p = 10; //向指针p所指向的内存空间中存入10
printf("%d", *p); //输出指针p所指向的内存中的值
>>> 10
-
指针就是用来存储内存地址的,为什么要分不同类型的指针呢?
因为指针变量存储的是一个内存空间的首地址(第一个字节的地址),但是这个空间占用了多少个字节,用来存储什么类型的数,则是由指针的类型来标明的。这样系统才知道应该取多少个连续内存作为一个数据。 -
why malloc?
之前的方法,必须预先准确知道所需变量的个数,也就是说我们必须定义出所有的变量。比如我们定义了100个整型变量,那么程序只能存储100个整数。而malloc函数使我们可以在程序运行的过程中根据实际情况来申请空间。
若有错误请帮忙指正呀,谢谢~
下一篇: 【算法笔记】习题6-13 字符串比较