相关疑难解决方法(0)

C 中字符串内的八进制表示

在给定的程序中:

int main() {
  char *p = "\0777";
  printf("%d %d %d\n",p[0],p[1],p[2]);
  printf("--%c-- --%c-- --%c--\n",p[0],p[1],p[2]);
  return 0;  
}
Run Code Online (Sandbox Code Playgroud)

它显示输出为:

63 55 0
--?-- --7-- ----

我可以理解它正在将\0 (\077)之后的前两个字符从八进制转换为十进制,但是谁能解释我为什么是 2 个字符,为什么不是 1 或 3 或任何其他字符?

请解释这背后的逻辑。

c octal number-systems

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

number-systems ×1

octal ×1