写在前边:
1.*:解引用运算符
2.&:取地址运算符
3.指针也是一种数据类型,是由其他数据类型派生出来的。指针的最大作用是构造数据结构:将不连续的内存空间连接在一起。通过解引用运算符(*)获取p在内存地址上保存的值,*p就代表指针p所指向的内存单元中的值
正文:
1.当定义一个变量(int a=100)后,计算机会将变量a的值100转变为二进制储存进一段连续的内存空间,第一个内存空间的编号就是变量a的地址,使用&a可以获取该地址值。
2.当定义一个指针(int *p)后,c程序会在内存中划分一段内存空间,用来存储*p的值。指针类型为int,指针类型的变量为p。
3.当定义一个指针指向变量a的地址(int *p =&a)时,称:p是指向int类型变量a的指针,简称p指向a。此时指针变量p的值,是变量a在内存中存储的第一个地址单元的编号即&a。通过指针类型(int),c程序可以知道这个指针指向的数据占用了4个内存单元,从而正确读出a存储在4个内存空间上的数据。
指针的加减运算:当p = p+1时,p所保存的地址会加上指针类型(int)所占用的存储单元的个数(int是4个字节,即4byte=4*8bit),从而使指针跨越当前数据,指向下一个完整的数据。
例:
int main() { int a = 100; int *p = &a; printf("%s %d\n","定义指针后,将a的地址赋给p,p的值:",p); printf("%s %d\n","a的地址:",&a); printf("%s %d","使用解引用运算符获取指针p所指向元素的值,即为a的值:",*p); }
依次输出:
>>>定义指针后,将a的地址赋给p,p的值: 6422036
>>>a的地址: 6422036
>>>使用解引用运算符获取指针p所指向元素的值,即为a的值: 100
标签:定义,指向,int,内存空间,运算符,地址,指针 From: https://www.cnblogs.com/jinziguang/p/17163000.html