【问题标题】:Pointer C - declaration [duplicate]指针 C - 声明 [重复]
【发布时间】:2012-09-27 17:28:34
【问题描述】:

可能重复:
In C, what is the correct syntax for declaring pointers?

我正在与 c 语言作斗争。指针对我来说是新的,我想我越来越接近理解它们了。

我有一个问题。

有什么区别:

int k = 4;
int* pcp = &k;

int k = 4;
int *pcp = &k;

我似乎找不到这些指针声明之间的任何区别,它只是语法糖 - 还是有什么区别?

谢谢

【问题讨论】:

  • 唯一的区别是空间的放置位置。从语义上讲,它们是相同的。
  • 这不是“语法糖”......这根本不是这个词的意思。而这与指针无关...

标签: c


【解决方案1】:

这些声明没有区别,但以下两个声明有区别:

int* p, p2;  // declares a pointer to int and a regular int 

和:

int *p, *p2; // declares two pointers to int

这可能被您的示例隐藏了。

所以我更喜欢第二个声明。

【讨论】:

  • 这就是为什么通常首选将* 粘贴到变量名上的原因——int* p, p2; 很痛苦。
  • @DavidSchwartz 不,通常最好对每个指针使用单独的声明,并将“*”粘贴到基类型,因为这是它所属的地方。
【解决方案2】:

您可以自己尝试一下。只需输入两者, printf 看看会发生什么:P

如果我没记错的话,那是一样的 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多