指针C-声明
可能重复:指针C-声明,c,C,可能重复: 我正在与c语言斗争。指针对我来说是新的,我想我越来越接近于理解它们 我有一个问题 以下两者之间的区别是什么: int k = 4; int* pcp = &k; 及 我似乎找不到指针的这些声明之间的任何区别,它只是语法上的糖,还是有任何区别 谢谢你可以自己试试。只需输入两个,打印出来,看看会发生什么:P 如果我没有大错特错的话,也是一样的;) 这些声明没有区别,但以下两个声明之间有区别: int* p, p2; // declares a pointer to int
我正在与c语言斗争。指针对我来说是新的,我想我越来越接近于理解它们 我有一个问题 以下两者之间的区别是什么:
int k = 4;
int* pcp = &k;
及
我似乎找不到指针的这些声明之间的任何区别,它只是语法上的糖,还是有任何区别
谢谢你可以自己试试。只需输入两个,打印出来,看看会发生什么:P
如果我没有大错特错的话,也是一样的;) 这些声明没有区别,但以下两个声明之间有区别:
int* p, p2; // declares a pointer to int and a regular int
以及:
你的例子可能隐藏了这一点
所以我更喜欢第二个声明。唯一的区别是空格的位置。在语义上,它们是相同的。这不是“句法上的糖”。。。那根本不是这个词的意思。这与指针无关……这就是为什么通常更倾向于将
*
粘贴到变量名--int*p,p2代码>很痛苦。@DavidSchwartz不,通常最好对每个指针使用单独的声明,并将“*”粘附到基类型,因为它属于基类型。
int* p, p2; // declares a pointer to int and a regular int
int *p, *p2; // declares two pointers to int