成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

有趣的IT面試題

系統(tǒng)
一段看起來很簡單C代碼,預期結果是輸出array數(shù)組。

一段看起來很簡單C代碼,預期結果是輸出array數(shù)組。

  1. #include<stdio.h> 
  2. #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))  
  3. int array[] = {23,34,12,17,204,99,16};  
  4. int main()  
  5. {  
  6.     int d;  
  7.     for(d = -1;d <= (TOTAL_ELEMENTS - 2); d++)  
  8.         printf("%d\n", array[d+1]);  
  9.     return 0;  

代碼編譯運行后,結果不是想要的那個數(shù)組,而是空值,這是很多人就會想到宏定義了,原因是宏定義是沒辦法獲得數(shù)組的長度。

可我們把for循環(huán)改一下就有不同的結果了

  1. for(d = -1; d <= ((int)TOTAL_ELEMENTS-2); d++)  

把TOTAL_ELEMENTS強制轉換成int類型的,結果就變成了:

。。。。。。。。。。這是我們想要的結果,那就是說宏定義沒問題。

我們在原來的main()函數(shù)中加一句

  1. int array_length = TOTAL_ELEMENTS

這樣和類型強轉的效果應該是一樣的,跟蹤監(jiān)視后得到下面的結果:

IT面試題

提示是沒有找到符號"TOTAL_ELEMENTS",但是array_length卻有值。。。。。。。很郁悶

接著,我們在for循環(huán)里處理數(shù)組長度

  1. for(d = -1; d <= ((sizeof(array) / sizeof(array[0])) - 2); d++) 

現(xiàn)在,輸出結果應該就是我們想要的那個數(shù)組了。可結果呢,啥都沒輸出。。。。。。。更郁悶

那就繼續(xù)跟蹤監(jiān)視

IT面試題

好像都沒問題,不過注意它們的類型,是無符號整形(unsigned int),而循環(huán)條件d是整形(int),并且d的初始值為-1,不再無符號整形(unsigned int)定義范圍之內,現(xiàn)在看來好像是類型的問題了,那我們將循環(huán)條件d的初始值改為0試試:

  1. #include<stdio.h> 
  2. #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))  
  3. int array[] = {23,34,12,17,204,99,16};  
  4. int main()  
  5. {  
  6.     int d;  
  7.     for(d = 0; d <= (TOTAL_ELEMENTS - 1); d++)  
  8.         printf("%d\n", array[d]);  
  9.     return 0;  

輸出的結果是

IT面試題

結果正是我們想要的。沒有進行強制類型轉換,也沒有進行二次賦值,只是將循環(huán)條件d的初始值定義在了無符號整形(unsigned int)的范圍之內。

我們再做個小測試

  1. int main()  
  2. {  
  3.     int array[] = {23,34,12,17,204,99,16};  
  4.     int d = -1;  
  5.     if(d <= (sizeof(array) / sizeof(array[0])) -2)  
  6.         printf("先有雞\n");  
  7.     else  
  8.         printf("先有蛋\n");  
  9.     return 0;  

從代碼看來,應該是輸出“先有雞”。不過這次結果又是事與愿違,輸出的是“先有蛋”。

所以建議在寫代碼的時候盡量避免使用無符號類型,同時也盡量避免有符號類型和相應的無符號類型進行比較等。

================================================================

本人才疏學淺和其他原因,沒有進行更深入的研究,只是偶爾看到的IT面試題,感興趣簡單的測了一下。

不過跟蹤監(jiān)視后,CX0017:錯誤:沒有找到符號"TOTAL_ELEMENTS",還是沒有找到原因,有知道的大神不妨指點一二。。。。。。

原文鏈接:http://www.cnblogs.com/lonzhe/p/3914975.html

責任編輯:牛小雨 來源: 龍^o^少的博客
相關推薦

2023-08-27 15:57:28

前端開發(fā)

2020-06-04 14:40:40

面試題Vue前端

2023-11-13 07:37:36

JS面試題線程

2011-03-24 13:27:37

SQL

2009-06-06 18:34:05

java面試題

2009-06-06 18:36:02

java面試題

2015-09-02 09:32:56

java線程面試

2010-11-26 10:53:29

戴爾

2014-07-15 11:10:01

面試題面試

2020-09-21 11:10:06

Docker運維面試

2025-02-26 07:58:41

2018-03-08 18:40:47

Java百度面試題

2024-06-04 14:52:28

2023-07-14 08:12:21

計時器unsafecontext

2013-01-05 14:51:34

JavaScriptjQuery面試

2014-07-28 14:00:40

linux面試題

2009-06-16 14:03:16

Hibernate面試Hibernate面試

2020-11-05 10:01:35

系統(tǒng)設計軟件

2013-05-29 10:23:36

Android開發(fā)移動開發(fā)Java面試題

2021-02-23 12:43:39

Redis面試題緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产人免费人成免费视频 | 久久精品国产一区 | 精品国产99 | 伊人久久精品一区二区三区 | 亚洲国产日韩欧美 | 色偷偷人人澡人人爽人人模 | 日韩爱爱网站 | 久久婷婷国产麻豆91 | 亚洲成人精品在线 | 中文字幕日韩一区二区 | 国产美女精品视频免费观看 | 一级做a爰片性色毛片视频停止 | 欧美一区二区在线播放 | 日本在线一区二区三区 | 久久久久久99 | 精品国产一区二区国模嫣然 | 欧美日韩亚洲二区 | 久久在线 | 国产在线一区二区 | 午夜影院网站 | 国产福利在线 | 成人久久18免费网站图片 | 欧美美女二区 | 国产精品国产a级 | 日韩福利 | 视频在线一区二区 | 一区二区在线免费观看 | 国产91综合 | 亚洲国产一区二区三区在线观看 | 亚洲精品自在在线观看 | 国产亚洲久 | 精品久久久久久亚洲综合网站 | 国产精品成人一区二区三区 | 亚洲欧美综合精品久久成人 | 久久一级 | 国产成都精品91一区二区三 | 精品国产欧美一区二区三区成人 | 久久精品国产精品青草 | 亚洲男人天堂 | 国产精品久久久久aaaa九色 | 偷拍自拍网站 |