两句C语言解释,指针的

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:26:47
unsigned char *buf[100];
mystruct *strs=(mystruct *)buf;
******************
其中mystruct是一个结构体,第一句是声明了一个数组名为buf的大小为100的数组、数组成员为指向字符的指针变量吗?第二句的(mystruct *)buf意思?什么运算符、C语言哪方面知识啊?谢谢

buf实际上也是一个指针,在c语言中各种类型的指针之间是可以转换的(当然,很多时候存在引用安全问题),这里buf指向数组首地址,(mystruct *)buf的意思即是将指向char*类型的指针buf强制转换为指向mystruct类型的指针。

欢迎到我的空间提问!

楼上正解.
补充一下,buf那里的意思是,创建了一个数组,数组大小为100.数组每一项都是一个指向无符号字符型的指针.

buf是一个指针,指向堆中大小为100char的数组,buf是该数组首地址,第2句是buf强制转换为指向mystruct类型的指针..强制类型转换

更清楚的可以理解为mystruct *strs=(mystruct *)((char*)buf);