c存储指针
1. C语言中,定义一个指针的时候为这个指针开辟存储空间吗
Int*p:第一级指针,表示p点所在地址是一个100Int类型的值,p被声明为一个指向整数的指针,并且为这个指针分配了存储空间。但在这种情况下,它是一个随机数,我们称之为指向一个不确定的内存地址。
当用户说“direct*p=5”时,在一个不可预知的内存地址上写入一个整数5。这是不允许的,并可能导致程序崩溃。
P = & a;然后,将现有变量a的地址写入指针p,我们说指向a的指针可以通过变量p对变量a进行正常操作。
(1)c存储指针扩展阅读:
指针:
指针的表示法是地址,核心是指向关系的指针,操作符“*”的作用是根据关系访问所指向的对象。如果版本与B有指向关系,则A为B的地址,“*A”表示通过该指向关系间接访问B。
如果B的值是一个指针,它指向C,BC地址,间接访问,CB“*”如果C是整数,真实的,或结构,如类型变量或数组元素对于这些类型的数据,BC(即地址)是通用的指针,即主要指的是右边的针,持有一级指针变量指针变量。
2. 指针的存储类型和数据类型的意义是什么
1.定义指针指定的数据类型是指指向数据的类型,并不是指针的类型,指针的数据类型是内存地址类型。
2.之所以定义指针时指明它指向数据的类型,是因为有些数据类型不能进行某些操作(运算),比如两个char相乘(或相除)没有任何意义。假如说定义指针时不需要指明它指向数据的类型,那么有指针p1和p2,那么(*p1)*(*p2)在不知道p1和p2指向的数据类型时就不能保证它对数据类型运算的限制了;
3,如果你只是想用指针保存一下数据的内存地址而不去对它进行运算你可以定义void类型的指针,它能指向任何数据类型,但是他不能进行任何运算。
另外你看下C++ Primer这本书,他对指针说明的很详细