国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C語言八進制學習小結

2019-11-10 18:47:39
字體:
來源:轉載
供稿:網友

讀了一下《C語言陷阱與缺陷》,開篇的一個介紹便是八進制。說起來,這個問題在我工作的過程中還確實是遇到過。

在C語言中,以0開頭的數字被識別為八進制。簡單寫一段代碼如下:

  1 #include"stdio.h"

  2 

  3 int var1 =123;

  4 int var2 =0123;

  5 

  6 int main(void)

  7 {

  8     PRintf("var1 =%d/n",var1);

  9     printf("var2 =%d/n",var2);

 10    return 0;

 11 }

編譯運行結果:

GreydeMac-mini:oct greyzhang$ gcc oct.c 

GreydeMac-mini:oct greyzhang$ ./a.out 

var1 = 123

var2 = 83

從書中看到,有些編譯器會把0789這樣的數值也會按照八進制的轉換方式進行轉換。最終的結果為9*(8**0) + 8*(8**1) + 7*(8**2)計算出來。不過在標準C中,這是不允許的。簡單測試一下,修改代碼:

  1 #include"stdio.h"

  2 

  3 int var1 =789;

  4 int var2 =0789;

  5 

  6 int main(void)

  7 {

  8     printf("var1 =%d/n",var1);

  9     printf("var2 =%d/n",var2);

 10    return 0;

 11 }

編譯與運行:

GreydeMac-mini:oct greyzhang$ gcc oct.c 

oct.c:4:14: error: invalid digit '8' in octal constant

int var2 = 0789;

             ^

1 error generated.

查看一下編譯器的版本信息:

GreydeMac-mini:oct greyzhang$ gcc -v

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1

Apple LLVM version 8.0.0 (clang-800.0.42.1)

Target: x86_64-apple-darwin16.4.0

Thread model: posix

InstalledDir: /Library/Developer/CommandLineTools/usr/bin

不像之前用過的gcc,這次沒有gcc的版本信息,不過里面的信息在使用Python的時候倒是看到過。

[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin

由以上信息可以看出,其實Mac里面提供的gcc編譯器并不是gcc而是一個兼容gcc功能的一個編譯器。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄县| 梅河口市| 桐乡市| 浪卡子县| 抚松县| 抚远县| 闽侯县| 潮州市| 东乌珠穆沁旗| 安顺市| 平武县| 驻马店市| 云安县| 静海县| 广德县| 安溪县| 清河县| 若尔盖县| 郓城县| 金门县| 高州市| 客服| 华蓥市| 调兵山市| 黔西县| 怀化市| 安仁县| 安国市| 寻甸| 台北县| 静乐县| 宜黄县| 泸定县| 邯郸市| 巴楚县| 西乌| 淮阳县| 新乡县| 凭祥市| 清丰县| 敦煌市|