程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言常見問題

C語言常見問題

編輯:關於C

 

我最近看了一份文檔,叫做《C語言常見問題》,感覺裡面有很多知識很基礎,但就是容易弄錯!正所謂“不及跬步,無以致千裡”,只有打好了基礎才會有所突破。基礎是水,沒有它魚兒活不了;基礎是山,沒有它樹木長不了;基礎是雲,沒有它大雨下不了。

 

 

    從這份文檔中,我提取了比較重要的內容,在此與大家分享!

 

 

 

在C語言中,有一個“流”的概念;流可以分為兩種類型:文本流(文件)和二進制流(文件);文本流是解釋性的,最長可達255個字符;二進制流是非解釋性的,一次處理一個字符。

 

在用C語言編程的時候,我們都是用#include指令包含類型為".h"的文件,那麼可以用該指令包含類型不為".h"的文件嗎?答案是:可以。我也是剛才看到這個的。

 

在C語言中,我們經常使用宏;那麼編程的時候,是使用宏更好,還是使用函數更好?一般來說,應該用宏去替換小的、可重復的代碼段,這樣可以使得程序得運行速度更快;當任務比較復雜,需要多行代碼才能實現時,或要求程序越小越好時,就應該使用函數。

 

串拷貝(strcpy)和內存拷貝(memcpy)有什麼不同?strcpy()函數只能拷貝字符串,而memcpy()函數可以拷貝任意類型的數據。在C語言中,可以用itoa()函數將整數轉換為字符串,用atoi()函數將字符串轉換為整數。

 

在指針運算中,我們要區分“空指針”和“void指針”:空指針的值是NULL,它並不指向任何對象;而void指針一般被稱為通用指針或泛指針,它指向某個對象,但該對象不屬於任何類型。

 

在什麼時候使用“空指針”?1)用空指針終止對遞歸數據結構的間接引用;2)用空指針作函數調用失敗時的返回值;3)用空指針作警戒值;在什麼時候使用void指針?當進行純粹的內存操作時,或者傳遞一個指向未定類型的指針時,可以使用void指針。

 

NULL總是被定義為0嗎?NULL不是被定義為0,就是被定義為(void*)0,這兩種值幾乎是相同的;NULL總是等於0嗎?如果指“與0比較的結果為相等”,那麼確實是等於0;如果指“其存儲方式和整型值0相同”,那麼答案是“不”,NULL並不必須被存為一個整型值0。

 

用指針作if語句的條件表達式意味著什麼?當把一個指針作為條件表達式時,所要判斷的條件實際上就是“該指針是否為一空指針”;兩個指針是不能相加的。

 

在C語言中,用void關鍵字說明的函數是沒有返回值的,並且也沒有必要加入return語句;在有些情況下,一個函數可能會引起嚴重的錯誤,並且要求立即退出該函數,這時就應該加入一個return語句,以跳過函數體內還未執行的代碼。

 

exit()和return有什麼不同?用exit()函數可以退出程序並將控制權返回給操作系統,而用return語句可以從一個函數中返回並將控制權返回給調用該函數的函數。

 

數組的下標總是從0開始嗎?是的;可以使用數組後面第一個元素的地址嗎?可以使用數組後面第一個元素的地址,但不可以查看該地址中的值。

 

array_name和&array_name有什麼不同?前者是指向數組中第一個元素的指針,後者是指向整個數組的指針。

 

為什麼應該使用標准庫函數而不使用自己編寫函數?標准庫函數有三點好處:准確性、高效性和可移植性。

 

什麼是“局部環境(local)”?局部環境是對特定環境下程序要遵循的特定規則的一種描述,它對程序的國際化很有幫助

作者:zhouzxi

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved