表示位置
变量只是一个代号,它的本质是内存。
指针保存的是内存地址。
指针,本质是一个地址
代表指针的数据本身也有一个地址,但这个没用
给指针赋值的时候,给的是被赋值量的地址
调用的哪个函数,运行到函数的哪一行,变量的相关数据都被记录保存到栈当中了。
p &x:表示查看x变量所在的地址。
变量的本质是地址,是内存空间。
标准的编程语言不允许直接对内存地址进行操作,操作系统不允许。
指针也是一个变量类型,保存内存地址。
变量名只是代号,变量的本质是内存;
在标准的C语言中,不允许直接对内存地址进行操作,只能是对操作系统已经分配给的内存空间进行操作。(防止用户自己操作内存地址时侵吞系统内存或者其他程序的内存)
int *p=&a; p 指针指向的变量地址; *p 指针指向的变量值; &p 指针自己所在的地址。既然一个指针保存的是变量的地址,对32位CPU,地址有4个字节,就需要4个内存单元来存储,所以每次++p在内存里都是跳4格。
函数调用信息保存在栈(stack)中。 int *pa=&a指将a的地址传给pa。因此p pa看到的是a的地址(&a)。 而p &pa才能看到pa本身的地址。
C语言不允许直接操作代码段
1.1运行的程序保存在代码段
1.2代码当前已经运行的进程保存在栈
2.1变量的本质是内存(占据了一部分内存)
2.2指针本质是内存地址
变量名它只是一个代号
变量的本质就是内存
C语言语法是不允许我们直接操作代码段的
32位64位操作系统原理:地址总线32条,数据总线32条,因此32个二进制位。
*p;指针指向的变量值
&p;指针自己所在的地址
标准的C语言中,不允许直接对内存地址进行操作,只能是对操作系统已经分配给的内存空间进行操作。(防止用户自己操作内存地址时侵吞系统内存或者其他程序的内存)
指针保存的是什么?指针保存的就是内存的地址
C语言语法不允许我们直接操作代码段;
变量的本质是什么?
变量名只是一个代号,变量的本质就是内存;
指针保存的是内存地址;
c语言语法不允许用户直接操作代码段。
变量的本质是什么?
变量名只是一个代号,变量的本质就是内存。
指针变量保存的就是内存地址,指针的本质就是地址。
代码段也有自己的地址
变量的本质是内存
指针本质上就是地址
变量标记了一个地址和空间,但是不具体的设定其内存的内容.
变量的本质是内存,指针的本质是地址。
例:变量就是给柜子格(内存)起名;指针就是在柜子格里放入的地址名,根据这个地址名找到实体。
int (*pquadrate)(int a)=&quadrate;
int s=quadrate(a);
c语言不允许直接操作代码段
代码在代码段
数据在数据段
程序编译运行的状态在栈
变量:在数据段内存中某个地址处存放某个类型的数值
指针:在数据段内存中某个地址处存放某个地址&a,该地址处存放某个变量
变量名只是个代号
变量的本质就是内存
指针保存内存地址
pa 只是个代号, *pa=&a后
打印pa得到0x7fffffffddfc这个地址是a所在的地址
打印&pa得到0x7fffffffde08这个是pa本身的地址
栈在高地址
chengxu2
chengxu
变量的本质是什么?
变量名它只是一个代号
变量的本质就是内存
操作系统内存管理图
指针保存的就是内存地址