c语言之指针理解一

1、指针是一种变量,占有内存空间,用来保存内存地址的

void Demo(){
int a = 10;
}

非指针内存图:

c语言之指针理解一_第1张图片

定义了一个int型变量,a属于内存区的栈中,给它分配了一个内存地址,该内存空间中存储的类型必须为int,a的值是全局区中的10,这里是10这个数据,而不是10在全局区的内存地址;

void Demo(){
int* p = 10;
}

c语言之指针理解一_第2张图片

int:该变量是int型

*:p是指针变量;

该变量的的大小4byte,无论是*p,**p,***p,该变量的大小都是4byte; *只是说明该变量是指针变量;

p存储的是10的内存地址,和int a= 10;的内容是不一样的;p也有自己的内存空间,在当前是被分配与栈中的;

*p:表示p所存储内存地址的空间中的数据,也就是10;

修改p的值只是让p指向不同的对象;

修改*p的值是修改p存储内存地址的数据;








你可能感兴趣的:(C语言,指针)