C指针的声明、赋值和基础操作 函数指针赋值

指针赋值:

指针的初始化、赋值是同类型实体(即实体变量)的地址
int i=10;
int* ip=&i (&表示实体的地址)
int* ipt=&10是不可以的,10是实体,而不认可具有空间地址(所以说是实体变量地址才有效,也就是说将某一个const的变量赋值给指针同样是不对的。。。)

指针直接赋实体值
C指针的声明、赋值和基础操作 函数指针赋值
int i=10;
int* ip=&i;
int* ipt=10 不可以,指针初始化必须是实体地址
但是*ip=20是可以,指针间接访问地址操作(即指针访问的并不是整形变量20,而是整型变量20的地址)
这里的*ip为什么能直接给实体值呢?
因为*ip是所指向实体地址的间接访问操作,也就是指针指向实体的时候是可以读写操作的。其实这里还是赋值的地址。

空指针不能赋实体值
int* ip;
*ip=10 不可以
这里的*ip为什么又不能给实体值了呢?
因为这里的指针*ip没有经过初始化,*ip没有指向实体,为空指针,则就不能读写了。

指针间的操作
当指针指向具体实体后,指针也就有了具体的实体值和具体的空间地址,这时候就可以被二级指针所操作
int i=10;
int* ip=&10;
int** iip=&ip;

理解了上面的指针赋值,那么其余的指针间操作就好操作了,必须理解清楚指针在各种情况下的表示。

给指针赋值,必须是个地址,各种形式的赋值只是表现出的形式不一样,实际指针只能指向实体的地址。
指针在赋值时必须是与指针类型相同的类型实体地址。
但实际的存储空间的实体都是以二进制数进行存储的,那么当一个float的实体地址被一个int指针指向时,这个float实体就会被强制转换为int实体,那么数据就出现变动,很容易出错。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/78612.html

更多阅读

建筑透视图和速写中的视点、视高和视平线 如何确定视平线

视点和视平线的确定,对于绘制建筑透视图或者建筑速写来说,是第一位的工作。所谓视点就是作画者作画时眼睛的位置(在电脑绘图中,指的就是照像机的位置)。“近大远小”这条最基本的透视规律就是相对视点来说的,这是绘制透视图的主要依据。

声明:《C指针的声明、赋值和基础操作 函数指针赋值》为网友领先后分享!如侵犯到您的合法权益请联系我们删除