char*s和char*s的区别是什么?

char*s和char*s的区别是什么?,c,pointers,C,Pointers,根据标题。我看到某些人将指针声明为char*s,而其他人将其声明为char*s。我还看到一些人做,比如说,s=(char*)malloc(5),而不是做*s=malloc(5)。这两者之间也有区别吗?抱歉,如果重复这个问题,我理解指针的概念,但很难理解C中用来表示指针的语法。没有区别 一种习俗已经形成:人们喜欢把char*看作是s的类型(当然,这是一个指针);这可以使源代码更具可读性 但是实际上,char是类型,*s是变量。你可以通过写作看到这一点 char*s,t s是指针,但t是普通的旧ch

根据标题。我看到某些人将指针声明为
char*s
,而其他人将其声明为
char*s
。我还看到一些人做,比如说,
s=(char*)malloc(5)
,而不是做
*s=malloc(5)
。这两者之间也有区别吗?抱歉,如果重复这个问题,我理解指针的概念,但很难理解C中用来表示指针的语法。

没有区别

一种习俗已经形成:人们喜欢把
char*
看作是
s
的类型(当然,这是一个指针);这可以使源代码更具可读性

但是实际上,
char
是类型,
*s
是变量。你可以通过写作看到这一点

char*s,t

s
是指针,但
t
是普通的旧
char
。如果希望
s
t
都成为指针,就必须编写

char*s,*t

或是模糊的

char*s,*t

没有区别

一种习俗已经形成:人们喜欢把
char*
看作是
s
的类型(当然,这是一个指针);这可以使源代码更具可读性

但是实际上,
char
是类型,
*s
是变量。你可以通过写作看到这一点

char*s,t

s
是指针,但
t
是普通的旧
char
。如果希望
s
t
都成为指针,就必须编写

char*s,*t

或是模糊的


char*s,*t

完全没有区别。您不需要对
malloc
*s=malloc(5)
进行强制转换,除非
s
char**
。而
malloc()
不应该强制转换,因为它不需要
char*t=null
s==t
将返回true?@wetfeets如果您的意思是
NULL
,而不是
NULL
,那么是的。没有任何区别。您不需要对
malloc
*s=malloc(5)
进行强制转换,除非
s
char**
。而
malloc()
不应该强制转换,因为它不需要
char*t=null
s==t
将返回true?@wetfeets如果您的意思是
NULL
,而不是
NULL
,那么是的。很难相信这不是一个多重复制。我喜欢将'char*'视为类型,将's'视为变量名,+1:D@MartinJames:回答这个问题很危险(i)可能是重复的(ii)说
char
是变量的类型
*s
也是不明智的。对于
void*p
sizeof(t*)
等来说没有意义。我认为最好说
*
绑定变量名是C语法的一个怪癖,而不是试图合理化它。很难相信这不是一个多重复制。我喜欢将“char*”作为类型,将“s”作为变量名, +1 :D@MartinJames:回答以下问题是一个危险的问题:(i)可能是重复的,(ii)基于观点的边缘。说
char
是变量的类型
*s
也是不明智的。对于
void*p
sizeof(t*)
等来说没有意义。我认为最好说
*
绑定变量名是C语法的一个怪癖,而不是试图合理化它。