这个程序会在 Turbo C 中编译吗?

Will this program compile in Turbo C?

我想知道,因为我目前正在学习C。

#include<studio.h>

int main()
{
  into a=10, *j;
  void *k;
  j=k=&a;
  j++;
  k++;
  printf("%u %u\n, j, k");
  return 0;
}

没有。语句 k++ 有错误。我们不能对 void 指针执行算术运算。

在TurboC中编译上述程序会出现如下错误

>     Compiling PROGRAM.C:
>     Error PROGRAM.C 8: Size of the type is unknown or zero.

没有

Turbo C 2.01 总共产生了 7 个错误和 3 个警告。 从顶部开始:

  • stdio.h 拼写错误。如果拼写困难,请记住它代表 Standard input 和 o输出。
  • into 没有意义。您是说 int 吗? integer.
  • 的缩写

第一次编译时,其余的错误都是因为编译器没有理解上面的内容,但一直在尝试。真是个骑兵!

解决以上两个问题后... King的回答生效。

Error C:\MAIN.C 9: Size of structure or array not known in function main

为什么?

你想说的可能有很多你想用那条线做的事情。但是,编译器读取的是"Take the pointer k, and make it point to the next element."元素是指针类型:int* k指向,intchar* k指向一个 char...
这很重要,因为当您递增指针时,为了指向下一个元素,它必须知道元素的 size
空元素没有大小。 void* 你说的是 "This pointer points to data. Don't fret compiler, I'll figure out what kind of data later, by using a cast."

如果你想说 "Take whatever value k points to, and add 1 to it," 那么你需要 取消引用 k。取消引用意味着 "Take whatever value this points to." 我相信您可以看出它们之间的关系。为此,您可以使用 * 运算符,如下所示:
*k++;