小编Lei*_*ord的帖子

为什么这个片段中'A' = 0?

我正在通读《C for Dummies》,但在解读某些内容时遇到了困难。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define FALSE 0
#define TRUE !FALSE
#define OMEGA ('Z' - 'A')

int main() {
  int done;
  long int r; 
  char alpha; 

  srandom((unsigned)time(NULL)); 

  done = FALSE; 

  while(!done) {
    r = random() % OMEGA; // basically, OMEGA = 25 
    alpha = 'A' + (char)r;
    if (alpha =='Q') done = TRUE;
    putchar(alpha);
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道 #define OMEGA ('Z' - 'A') 将常数限制为 0 - 25。如果这是错误的,请纠正我。我遇到的问题是 alpha = 'A' + (char)r; 为什么“A”不是 65(就 ASCII …

c

0
推荐指数
2
解决办法
122
查看次数

标签 统计

c ×1