*(unsigned long *)&(random[0])=randomData;看不懂

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:48:25
unsigned char *random
unsigned long randomData;
randomData=rand();
*(unsigned long *)&(random[0])=randomData;
是什么意思啊,那么多星号。。。。。

*(unsigned long *)&(random[0])=randomData;
这个拆开看
random[0]是一个字符
&(random[0])是取的random[0]的地址
(unsigned long *)&(random[0])是对&(random[0])进行强制转换,转换成(unsigned long *)类型
*(unsigned long *)&(random[0])这最左边的*是取值的意思,上面用&取了地址,现在是取&(random[0])地址里的值,结果其实和random[0]是一样的,不过他多了一个强制转换过程.
最后:
*是取值,&是取地址
在变量前写的()里的东西是强制转换类型