我很难理解这个问题的答案。在编译时检查完整类型
给下面的代码:
int: size, size2, j;
float: x;
array[1:30] of int: nums;
对于下面的每个赋值语句,循环能或不能说是否能或不能完全在编译时类型检查。假设一个数组的下标范围被认为是它的类型的一部分。假定数字溢出不被视为类型错误。
A. size = size2 + 1; --> Answer: CAN
B. x = size; --> Answer: CAN
C. nums[j] = 33; --> Answer: CANNOT
D. nums[3] = nums[4]; --> Answer: CAN
E. nums[j] = nums[j+1]--> Answer: CANNOT
现在,编译程序被转换成机器代码的程序的执行期间发生的运行时间错误,其中当发生时间错误。我还阅读了关于编译与运行时错误的以下堆栈溢出问题:Runtime vs Compile time。在研究了这两个主题之后,我仍然对如何得出以下答案感到困惑。任何帮助将非常感激。