个人主页:点我进入主页
专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶
欢迎大家点赞,评论,收藏。
一起努力,一起奔赴大厂。
目录
内存
说到指针我们可以先看内存,内存被分为以字节为单位的单元,内存又分为栈区,堆区,静态区,栈区存放临时变量,形参,局部变量;堆区存放malloc等的变量;静态区存放全局变量,静态变量;
单个指针所占用的字节
在64位中每种类型占用8个字节,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("char=%d", sizeof(char*));
printf("int=%d", sizeof(int*));
printf("double=%d", sizeof(double*));
printf("float=%d", sizeof(float*));
return 0;
}
在32位电脑桌每种类型占用4个字节(由于电脑是64位,不方便展示,但代码相同,想验证的小伙伴可以试试)
指针
我们可以建立一个指针,代码如下
#include <stdio.h>
int main()
{
int a = 0;
int* p = &a;
printf("*p=%d", *p);
printf("a=%d", a);
return 0;
}
运行结果如下:
进入调试我们可以对a进行取地址
此时a的地址为0x0000006B362FF534
我们再*p的地址p
地址为 0x0000006B362FF534
指针在数组的使用
代码如下
对于数组的地址,arr便是数组的首地址,&arr[0],p,都是数组的首地址,故我们可以得到arr=p=&arr[0];故我们可以得到:
需要代码可以查看https://gitee.com/steventom/class/commit/75370c39090ae5d7b43259fb021a51570d53d4ff
希望各位一键三连