Questions tagged «c»

9
C实际上是图灵完备的吗?
我试图向某人解释C是图灵完备的,并且意识到我实际上并不知道它在技术上确实是图灵完备的。(C代表抽象语义,而不是实际实现。) 就我所知,“明显”的答案(大致:它可以处理任意数量的内存,因此它可以仿真RAM机器,因此它是图灵完成的)实际上是不正确的,尽管C标准允许要使size_t任意大,必须将其固定为一定的长度,并且无论将其固定为多长都是有限的。(换句话说,尽管您可以给定一台任意停止的图灵机,选择一个size_t的长度以使其能够“正常”运行,但没有办法选择一个size_t的长度,以使所有停止的图灵机都能正常运行) 所以:C99 Turing完成了吗?

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

7
为什么负数组索引有意义?
我在C编程方面遇到了奇怪的经历。考虑以下代码: int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } 编译并运行此程序时,没有任何错误或警告。正如我的讲师所说,数组索引-1访问另一个变量。我仍然很困惑,为什么编程语言具有这种能力?我的意思是,为什么要允许使用负数组索引?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.