*metal_layer = (data & 0xc0000000)>>30;

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:18:08
*metal_layer = (data & 0xc0000000)>>30;metal_layer前面加个*是干什么的啊?是把data与0xc0000000想与右移30位附值吗?

*metal_layer是指metal_layer指向的地址.如果
int a = 100;
int *metal_layer = &a;
那现在a = (data & 0xc0000000)>>30

加了*说明metal_layer是一个地址,指向=号后面的位置.
如果*metal_layer也是指向一个地址,那说明**metal_layer是一个指向指针的变量。

metal_layer 是 指针.

声明里
long int *metal_layer; // *metal_layer 是 指针
long int a;

metal_layer = &a; // 给存放单元

*metal_layer = (。。) // 赋值语句。
语句里, *metal_layer 是 指针指向的值

printf("%d ",*metal_layer);
打印语句里, *metal_layer 也是 指针指向的值