摘要:
为什么声明符的方法如此古怪 问:为什么声明符的语法如此古怪? 答:声明试图进行模拟使用。指针声明符的格式为*p,这种格式和稍后将用于p的间接寻址运算符方式相匹配。数组声明符的格式为a[...],这种格式和数组稍后的取下标方式相匹配。函数声明符的格式为f(...),这种格式和函数调用的语法相匹配。这种 阅读全文
posted @ 2023-02-17 15:12
木凌云
阅读(21)
评论(0)
推荐(0)
摘要:
不能把const对象用在常量表达式中 问:为什么不能把const对象用在常量表达式中呢?“constant”不就是常量吗? 答:在C语言中,const表示“只读”而不是“常量”。下面用几个例子说明为什么const对象不能用于常量表达式。 首先,const对象只在它的生命期内为常量,而不是在程序的整个 阅读全文
posted @ 2023-02-17 14:23
木凌云
阅读(74)
评论(0)
推荐(0)
摘要:
作用域和链接之间的区别 问:“作用域”和“链接”之间的区别到底是什么? 答:作用域是为编译器服务的,而链接则是为链接器服务的。编译器用标识符的作用域来确定在文件的给定位置访问标识符是否合法。当编译器把源文件翻译成目标代码时,它会注意到有外部链接的名字,并最终把这些名字存储到目标文件内的一个表中。因此 阅读全文
posted @ 2023-02-17 09:33
木凌云
阅读(99)
评论(0)
推荐(0)
摘要:
变长数组什么时候分配空间 问:具有自动存储期限的变量在所在块开始时分配内存空间。这对于C99的变长数组是否也成立? 答:不成立。变长数组的空间不会在所在块开始执行时就分配,因为那时候还不知道数组的长度。事实上,在块的执行到达变长数组声明时才会为其分配空间。从这一方面说,变长数组不同于其他所有的自动变 阅读全文
posted @ 2023-02-17 09:23
木凌云
阅读(23)
评论(0)
推荐(0)
摘要:
把选择语句和重复语句视为块 问:在C99中,为什么把选择语句和重复语句(以及它们的“内部”语句)视为块? 答:这条奇怪的规则来源于把复合字面量用于选择语句和重复语句时出现的一个问题。该问题与复合字面量的存储期限有关,所以我们先花点时间讨论一下这个问题。 C99标准指出,如果复合字面量出现在函数体之外 阅读全文
posted @ 2023-02-17 09:07
木凌云
阅读(40)
评论(0)
推荐(0)

浙公网安备 33010602011771号