2016-03-07 218 views
0

按照标题。我看到有些人宣称指针为char* s,其他人则宣称它为char *s。我还看到一些人在做,比如s = (char*) malloc(5),而不是做*s = malloc(5)。这是否也有区别?道歉,如果这个问题重复,我理解指针的概念,但很难理解用于表示指针在C中的语法。char * s和char * s有什么区别?

+7

没有区别的。 – haccks

+1

你不需要为'malloc'转换' –

+2

'* s = malloc(5)''会出错,除非's'是'char **'。 'malloc()'不应该被抛出,因为它不需要。 –

回答

5

没有区别。

A排序惯例已经成长起来:民间喜欢把char*作为是类型s(这是当然的,地,指针);这可以使源代码更具可读性。

但是真的是char就是这个类型,而*s这个变量。您可以通过编写

char* s, t;

s是一个指针看到这一点,但t是一个普通的老char。如果你想既st为指针,你必须写

char *s, *t;

或混淆

char* s, *t;

+1

很难相信,这不是一个多重复制。 –

+0

我喜欢将'char *'作为类型,'s'作为变量名称,+1:D – Netwave

+0

@MartinJames:回答(i)可能是重复的和(ii)基于边界的意见为基础是一个危险的问题。 – Bathsheba

相关问题