找回密码
 register

QQ登录

只需一步,快速开始

[*编程自学*] 第二十一课(05.00-05.01) 指针概述、指针变量的定义

[复制链接]

[*编程自学*] 第二十一课(05.00-05.01) 指针概述、指针变量的定义

[复制链接]
Waylee

主题

0

回帖

7744

积分

仙帝

积分
7744
Waylee 2024-8-11 14:44 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
内存的作用(内存储器):
  • 内存是沟通cpu和硬盘的桥梁
  • 暂存放CPU中的运算数据
  • 暂存与硬盘等外部存储器交换的数据
有关内存的两个概念:
物理内存:实实在在存在的存储设备
虚拟内存:操作系统虚拟出来的内存

在32位系统下,每个进程(运行着的程序)的寻址范围是4G,0x00 00 00 00 ~ 0xff ff ff ff
在写应用程序的,咱们看到的都是虚拟地址

在运行程序的时候,操作系统会将 虚拟内存进行分区
  • 堆:在动态申请内存的时候,在堆里开辟内存
  • 栈:主要存放局部变量(在函数内部,或复合语句内部定义的变量)。
  • 静态全局区
       1):未初始化的静态全局区:
            静态变量(定义的时候,前面加static修饰),或全局变量,没有初始化的,存在此区
       2):初始化的静态全局区
            全局变量、静态变量、赋过初值的,存放在此区
   4.代码区:存放咱们的程序代码
   5.文字常量区:存放常量的。
   内存以字节为单位储存数据的,咱们可以将程序中的虚拟寻址空间,看成一个很大的一维字符数组

【内存地址的概述】
系统给内存的每一个字节 分配一个编号,而这个编号 就是内存地址
1.png

内存地址 也叫 指针
操作系统给每个存储单元分配一个编号,
从0x00 00 00 00 ~ 0xff ff ff ff
这个编号咱们称之为地址
指针就是地址
指针变量:是个变量,是个指针变量,即这个变量用来存放一个地址编号,在32位平台下,地址总线是32位的,所以地址是32位编号,所以指针变量是32位的即4个字节
#include<stdio.h>

void test01()
{
        printf("%d\n",sizeof(char *));//4字节
        return;
}
int main(int argc,char *argv[])
{
        test01();
        return 0;
}

如何定义指针变量(重要)
定义指针变量的步骤
  • *修饰 指针变量名
  • 保存什么类型变量的地址 就用该类型定义一个普通变量。
  • 从上往下 整体替换

定义指针变量(前提):
明确保存啥类型变量的地址
#include<stdio.h>
void test02()
{
        //num拥有一个合法的空间
        int num = 10;
        //需求:请定义一个指针变量,保存num的地址
        //p就是指针变量 变量名为p  不是*p
        //在定义的时候:*修饰p,表示p为指针变量
        int *p; 

        //建立p和num的关系:p保存num的地址
        p = # //&num 取num变量的起始地址(首地址)
        printf("&num = %p\n",&num);
        printf("p = %p\n",p);
}
int main(int argc,char *argv[])
{
        test02();
        return 0;
}

运行结果:
&num = 0019FED8
p = 0019FED8
Press any key to continue


【指针变量的使用】通过p 对所保存的地址空间 进行读写操作
在使用中:
    int num = 10; int *p;
    *p表示取p所保存的地址编号 对于的空间内容。指针变量p的解引用。
    *p等价num



雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2024-11-23 20:35 , Processed in 0.064958 second(s), 10 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表