C 常量字符*名称vs常量字符*名称
两者之间有区别吗C 常量字符*名称vs常量字符*名称,c,C,两者之间有区别吗 const char* name = "name"; const char* name = "hello", something = "else"; 及 谢谢。不,没有区别,两种声明是等效的 请注意,C样式倾向于以这种方式声明指针对象: T *a; T* a; 虽然C++风格倾向于用这种方式声明指针对象: T *a; T* a; 不,没有区别,两个声明是等价的 请注意,C样式倾向于以这种方式声明指针对象: T *a; T* a; 虽然C++风格倾向于用这种方式声
const char* name = "name";
const char* name = "hello", something = "else";
及
谢谢。不,没有区别,两种声明是等效的 请注意,C样式倾向于以这种方式声明指针对象:
T *a;
T* a;
虽然C++风格倾向于用这种方式声明指针对象:
T *a;
T* a;
不,没有区别,两个声明是等价的 请注意,C样式倾向于以这种方式声明指针对象:
T *a;
T* a;
虽然C++风格倾向于用这种方式声明指针对象:
T *a;
T* a;
没有
但两者之间有区别
const char* name = "name";
const char* name = "hello", something = "else";
这是行不通的,而
const char *name = "hello", *something = "else";
不应该
但两者之间有区别
const char* name = "name";
const char* name = "hello", something = "else";
这是行不通的,而
const char *name = "hello", *something = "else";
应该这主要是口味的问题
我个人使用
const char*name
是因为我想明确类型是指针(achar*
),但许多人认为更正确的方法是使用const char*name
来表明*name
是指针(指向类型char
)这主要是一个品味问题
我个人使用
const char*name
是因为我想明确类型是指针(achar*
),但许多人认为更正确的方法是使用const char*name
来表示*name
是指针(指向typechar
)两者都被解析为const char(*name)=“name”代码>-*
绑定到声明符,而不是类型说明符
<> > C和C++中的声明是基于表达式的类型,而不是对象。如果您有一个指向某个类型T
的指针,并且您希望访问所指向的值,则需要遵循该指针:
x = *p;
表达式*p
的类型是T
,因此指针的声明是
T *p;
在您的例子中,name
指向一个以字符串文字开头的char
值。如果我们想得到字符值'n'
,我们将编写如下代码
const char start = *name; // assigns 'n' to start
因此,表达式*name
的类型是const char
,因此我们通常编写声明
const char *name;
由于C声明语法的工作方式,*
标记周围的空白并不重要。你可以把它写成
const char *name;
const char* name;
const char * name;
或者其他一些组合。我和许多其他人更喜欢第一种形式,因为它准确地反映了声明语法。还有一些人更喜欢第二种形式,尽管它对语法有点误导性,因为它强调了name
的类型
任何声称喜欢第三种形式的人,要么是痴迷者,要么是疯子 两者都被解析为const char(*name)=“name”代码>-*
绑定到声明符,而不是类型说明符
<> > C和C++中的声明是基于表达式的类型,而不是对象。如果您有一个指向某个类型T
的指针,并且您希望访问所指向的值,则需要遵循该指针:
x = *p;
表达式*p
的类型是T
,因此指针的声明是
T *p;
在您的例子中,name
指向一个以字符串文字开头的char
值。如果我们想得到字符值'n'
,我们将编写如下代码
const char start = *name; // assigns 'n' to start
因此,表达式*name
的类型是const char
,因此我们通常编写声明
const char *name;
由于C声明语法的工作方式,*
标记周围的空白并不重要。你可以把它写成
const char *name;
const char* name;
const char * name;
或者其他一些组合。我和许多其他人更喜欢第一种形式,因为它准确地反映了声明语法。还有一些人更喜欢第二种形式,尽管它对语法有点误导性,因为它强调了name
的类型
任何声称喜欢第三种形式的人,要么是痴迷者,要么是疯子 你能解释它们之间的区别吗?const char*a=“你好”,something=“其他”;这会将一个声明为指向char类型的指针,将某个声明为char。您可以通过执行“typedef char*pchar”来解决这个问题,它将允许:pchar a=“hello”,something=“other”;你能解释它们之间的区别吗?const char*a=“你好”,something=“其他”;这会将一个声明为指向char类型的指针,将某个声明为char。您可以通过执行“typedef char*pchar”来解决这个问题,它将允许:pchar a=“hello”,something=“other”;