如果我有一个静态常量char var good = function (obj, res) {
res.send({
success: 1,
res: obj
});
};
作为数组,可以写下如下内容:
'NAME'
与写作相同:
static const *char NAME[8] = {"gregory"};
我的意思是他们都是静态的,我听说将const再次置于*中使其静止。
我知道,只有const char *const NAME[8] = {"gregory"};
或static char
答案 0 :(得分:1)
` static const `
过度指定。如果你想要一个不能改变的字符串,请使用const
。
如果你这么倾向于使用#define NAME "gregory"
哪个也适用。然后你可以:
strcat(*ptrOtherString,NAME);
答案 1 :(得分:1)
关键字static
在C中有三种用途:
简而言之,关键字static
为对象提供了“静态存储类”,从而为其提供了上述功能。
我的意思是他们都是静态的,我听说将const再次置于*中使其静止。
不是真的。 “静态存储类”由“存储类说明符”提供给对象,例如auto
,register
,static
和extern
,而不是“类型限定符”,例如{{ 1}}。显然,一个人无法完成另一个人的工作。除非第二个语句在函数之外,否则它不是“静态的”,因为缺少关键字const
。
答案 2 :(得分:1)
我的意思是他们都是静态的,我听说将const再次置于*中使其静止。
这不正确; static
不会影响存储时长。 const
存储持续时间意味着阵列的存储在程序启动时分配并保持到程序终止。 static
只是将某些内容指定为不可修改的内容。
const
和const T *p
都表示T const *p
是指向p
1 的指针; const T
是可修改的(您可以将其设置为指向不同的对象),但p
不是(您无法修改*p
指向的事物)。
p
表示T * const p
是指向p
的 const
指针; T
是可修改的(您可以修改*p
指向的内容),但p
不是(您不能将p
设置为指向其他内容)。
p
和const T *const p
都表示T const *const p
和p
都不可修改。
要使某些内容具有*p
存储持续时间,您必须在文件范围(在任何函数的主体之外)或使用static
关键字声明它。
<小时/> 1。类型说明符(
static
,int
,char
等)和类型限定符(float
,const
)可以在声明中以任何顺序出现; volatile
和const unsigned long
都意味着同样的事情,但如果使用第二种形式,你的同伴可能会打败你。目前,这也适用于存储类说明符(long const unsigned
,static
),尽管未来的语言版本可能要求所有存储类说明符在声明中排在第一位