"'''令牌之前的预期表达"

use*_*701 4 c arrays

所以当我尝试将值赋给int数组时,我会继续遇到这个问题.我在'{'标记之前阅读了这个预期的表达式,但我仍然对它出现在我的代码中的原因感到困惑.我有一种感觉,我正在初始化并声明数组错误,这就是为什么它给我的问题.

所以,在main()之前,我宣布了一些全局变量(是的,我知道这很危险,但我的目的需要).使用这组全局变量,我还想声明一个大小为3的双数组

double rob_size, rob_tilt;
double rob_leftcolor [3];
double rob_rightcolor [3];
Run Code Online (Sandbox Code Playgroud)

然后在main函数中,我正在初始化变量和数组

rob_size = 1.0;
rob_tilt = 0.0;
rob_leftcolor [3] = {1.0, 0.0, 0.0}; 
rob_rightcolor [3] = {0.0, 1.0, 0.0};
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息"'{'token'之前的预期表达式".

首先,该错误消息的含义是什么?其次,该消息是否会出现,因为我正在初始化并声明数组错误?

谢谢

Cha*_*rns 10

最好在申报时进行初始化:

double rob_size = 1.0;
double rob_tilt = 0.0;
double rob_leftcolor [3] = {1.0, 0.0, 0.0}; 
double rob_rightcolor [3] = {0.0, 1.0, 0.0};
Run Code Online (Sandbox Code Playgroud)

需要以这种方式完成数组,但最好以相同的方式完成它们.

你的选择是

rob_leftcolor[0] = 1.0;
rob_leftcolor[1] = 0.0;
rob_leftcolor[2] = 0.0;
Run Code Online (Sandbox Code Playgroud)

  • 因为这是你在C中初始化数组的方式. (3认同)
  • 是的,使用 `{...}` 作为数组的初始化器 *ONLY* 用于初始化,而不是用于赋值。还必须为这些变量指定存储类,例如`static double rob_size = 1.0` 否则你的编译会警告你。 (2认同)