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

