const声明
刚刚看Linux UNIX系统编程手册时看到,这里的sys_siglist是什么?
我的理解如下,不知道对不对
首先sys_siglist是一个数组,里面每一个元素都是char *指针,比较疑惑的是两个const.的作用什么?
回答:
sys_siglist使用extern修饰,说明它是一个外部变量,声明在其他头文件中。
第一个const修饰的是数组变量中的元素, 即数组变量sys_siglist中的元素类型为
const char *
第二个const修饰的是sys_siglist这个数组变量,即
sys_siglist
这个变量是const
的,不能被修改,是只读的。
回答:
月经贴吗...
a. const char* const sys_siglist
b. char const* const sys_siglist
这里a == b
一律从右往左读. 把const写在后面(即b
)读起来就很方便: sys_siglist是const pointer to const char
接下来就没什么问题了吧.
练习:typedef int *pint
. const pint
是
int* const
const int*
int const*
中的哪个(些)?
答案:
因为pint
其实是作为一个类型出现的, 所以const
修饰的是这个类型, 用起来的感觉是和int const
一样的, 都是修饰其值, 对于pint
来说, 值就是 int*
. 这里我们也应该把const
放后面, 这样就语义一致了: pint const == int* const
. 所以读法也是const pointer to int
. 因此答案是1
. 而和上面的a
, b
一样, 2
== 3
.
以上是 const声明 的全部内容, 来源链接: utcz.com/p/191290.html