c语言中p=(uchar data *)a;这句是什么意思呢

[复制链接]
查看11 | 回复4 | 2013-8-22 07:29:01 | 显示全部楼层 |阅读模式
【1】按照你的描述:uchar data *p; char a='a'; p=(uchar data *)a;这句话就是将字符变量a保存的字符的ASCII码(此例中是97)当成一个指向uchar data类型数据的指针赋值给p,相当于p=(uchar data *)97;变量p将指向地址是97的一个存储区。总之就是拿a中存放的字符数据当成指针赋值。【2】如果a是这样定义的:char a[20];那么赋值的结果就是将a的首地址赋值给p,那么后面使用p指向的数据进行赋值和计算时全都实际上用数组a的存储区。...
回复

使用道具 举报

千问 | 2013-8-22 07:29:01 | 显示全部楼层
这是强制转换。p 的类型是 uchar data *p;a 应当是另一种类型,例如 short int a[10]; 如果 p,a 是同一种类型,才可以 p=a;不同类型要用 强制转换。...
回复

使用道具 举报

千问 | 2013-8-22 07:29:01 | 显示全部楼层
很明显是强制类型转换,由于a是char型,p应该是uchar data *指针型,如果要将一个变量赋给另外一个变量,那么就要满类型相同,否则就要强制转换成相同类型
望楼主采纳!!!...
回复

使用道具 举报

千问 | 2013-8-22 07:29:01 | 显示全部楼层
a也是指针变量。(uchar data *)a;这句确定有data 吗?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行