c语言中的星号“*”?
发布网友
发布时间:2022-05-15 16:33
我来回答
共3个回答
热心网友
时间:2024-02-25 07:25
楼上回答是正确的,举个例子:
char
*
test
=
null;
我们给test分配堆空间
test
=
(char
*)
malloc(5);
这里的char*
就是把分配的5个大小的空间引用为
char
*
类型的
如果我们已经给test指向的空间赋值
比如赋值为“123”
这时我们通过
*test
访问地址空间存储的内容
热心网友
时间:2024-02-25 07:26
*是一个被重载的运算符。
当作用于2个参数时,即作为双目运算符时,如 a*b ,为数乘运算,参数可以是int、float、double等数字数据类型。
当作用于1个参数时,即作为单目运算符时,如 *p,表示指针运算,参数可以是任意数据类型的指针。*p返回指针p所指的数据。
针对类、结构体,可以自定义*的双目运算,如复数的乘法、多项式乘法、向量叉乘等。
热心网友
时间:2024-02-25 07:26
#define ADC_A (*( struct ADC64_tag *) (0x000000 0x3048)
首先将0x000000加上0x3048,结果用(struct ADC64_tag *) 强制转化成一个指向struct adc_64结构的指针,如果不强制转化就把这个值当做指针,或者说地址,来访问的话,编译器是会报错的,然后第一个的*号表示访问这个地址!