码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-06-15 23:27:11      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

1)指针是一个变量,是用来存放地址的变量,占有内存空间,用来保存内存地址;

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

1 char *p = NULL;
2 p = (char *)malloc(100);
3  
4 if (!p == NULL)
5 {
6     free(p);
7     p = NULL;
8 }

free(p)是释放p所指向的内存空间的内容,而指针变量p中的值还是存在的,需要把p指向NULL,防止产生野指针

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

标签:

原文地址:http://www.cnblogs.com/sodo/p/4579336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!