带括号的C指针

TZP*_*e05 2 c pointers

我在我正在分析的一些代码中发现了这行代码:

Mintau = (double*) malloc(FadeAll.num_paths*sizeof(double));
Run Code Online (Sandbox Code Playgroud)

我还在这里找到了一个问题(这是它出现的其他问题的重复),它解释了指针的不同语法,包括:

int *ptr;  
int * ptr;  
int* ptr; 
Run Code Online (Sandbox Code Playgroud)

我应该解释一下,我完全理解上述所有三个都在说同样的话.最后一个是最接近我的代码行的那个.我想知道为什么在这种情况下双重必须在括号中?如果这是一个重复的问题,我很抱歉,但我找不到任何关于此的问题.

Cac*_*nta 5

这三个声明之间没有区别:

int *ptr;  
int * ptr;  
int* ptr; 
Run Code Online (Sandbox Code Playgroud)

(double*) 必须在括号中,因为它是一个Cast.

在这个链接中阅读一些有关投射的内容

希望能帮助到你.