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语法的一个怪癖,而不是试图合理化它。