您的位置:首页 > 编程语言 > C语言/C++

【C语言】指针是一个变量

2015-06-15 21:52 225 查看
1)指针是一个变量,是用来存放地址的变量,占有内存空间,用来保存内存地址;

2)在指针声明时,*号表示所声明的变量为指针

在指针使用时,*号表示操作 “指针所指向的内存空间中的值”;

*p相当于通过地址找到一块内存,然后操作内存;

*p放在等号左边赋值(给内存赋值);

*p放在等号右边取值(从内存获取值);

3)指针变量和它所指向的内存块是两个不同的概念

含义1:给p赋值p=0x1111;只会改变指针变量值,不会改变所指向的内容;

含义2:给*p赋值*p='a';不会改变指针变量的值,只会改变所指向的内存块的值;

含义3:等号左边*p表示给内存赋值;等号右边*p表示取值;

4)指针是一种数据类型,是指它的内存空间的数据类型

含义1:指针步长(p++),根据所指向内存空间的数据类型确定

C语言规定:要释放内存必须从内存首地址开始释放

指针变量和它所指向的内存空间是两个不同的概念

char *p = NULL;
p = (char *)malloc(100);

if (!p == NULL)
{
free(p);
p = NULL;
}


free(p)是释放p所指向的内存空间的内容,而指针变量p中的值还是存在的,需要把p指向NULL,防止产生野指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: