經典C語言面試題2:static關鍵字的用法?
C語言中static關鍵字的用法主要有以下三種:
1、在函式體內,static變數的作用範圍為該函式體,該變數的記憶體只能被分配一次,下次呼叫時維持上次的值(即具有記憶功能)。
2、在模組內的static全域性變數可以被模組內的所有函式訪問,但是不能被模組外的函式訪問(注:即使在模組外的函式中加extern也不行)。
3、在模組內的static函式只可以被模組內其他函式呼叫,此函式的作用域被限制在宣告它的模組之中。
綜上:在全域性變數前加上static則限制了其作用域(儲存區均在全域性區);在區域性變數前加static改變了其儲存區(由棧上變為全域性區)。
相關推薦
經典C語言面試題2:static關鍵字的用法?
C語言中static關鍵字的用法主要有以下三種:1、在函式體內,static變數的作用範圍為該函式體,該變數的記憶體只能被分配一次,下次呼叫時維持上次的值(即具有記憶功能)。2、在模組內的static全域性變數可以被模組內的所有函式訪問,但是不能被模組外的函式訪問(注:即使在
經典C語言面試題4:位元組對齊的作用
一、什麼是位元組對齊? 在現代計算機中,記憶體空間都是按照字節(byte)劃分的。從理論上講對任何型別的變數的訪問可以從任何地址開始,但實際情況是,訪問特定型別的變數的時候經常在特定的記憶體地址訪問,這就需要各種型別的資料按照一定規則在空間上排列,而不是順序地一
經典C語言面試題3:位域。
1、為什麼要用位域? 在計算機中,有些資訊儲存時並不需要佔用一個完整的位元組,而只需佔用一個或幾個二進位制位。比如在存放一個只有0和1兩種狀態的開關量時,用一位二進位制位即可表示。因此,為了節省儲存空間,C語言提供了一種稱為“位域”的資料結構來充分利用儲存空間。
C語言面試題2
1 預處理 問題1:什麼是預編譯?何時需要預編譯? 答: 預編譯又稱預處理,是整個編譯過程最先做的工作,即程式執行前的一些預處理工作。主要處理#開頭的指令。如拷貝#include包含的檔案程式碼、替換#define定義的巨集、條件編譯#if等。. 何時需要預編譯: 1、總是使用不經常改動的
C語言面試題:查詢字串中第一個不重複的字元
char findChar(char *s) { char *p,*q; p=q=s; while(*s != '\0') { while(*p++ != '\0')
c++面試題2:虛擬函式是如何實現的?
虛擬函式是通過一張虛擬函式表實現的,有多少個虛擬函式,就有多少個指標;在這個表中,主要是一個類的虛擬函式的地址表,這張表解決了繼承、覆蓋的問題;實際上在編譯的時候,編譯器會自動加上虛表虛擬函式的作用實現動態聯編,也就是說在程式執行階段動態的選擇合適的成員函式,在定義了虛擬函式之後,可以在基類的派生類中對虛擬函
C語言面試題分類->排序算法
OS sort 試題 時間復雜度 ups popup popu 使用 body 1.選擇排序。 每次將最小的數,與剩余數做比較。找到更小的,做交換。 時間復雜度:O(n2) 空間復雜度:O(1) 優缺點:耗時但內存空間使用小。 void selectSor
C語言面試題分類->回調
指向 name 傳輸 join 接口 但是 PE AS 一個數 本文主要講解如果實現回調,特別是在封裝接口的時候,回調顯得特別重要,我們首先假設有兩個程序員在寫代碼,A程序員寫底層驅動接口,B程序員寫上層應用程序,然而此時底層驅動接口A有一個數據d需要傳輸給B,此時有兩種方
智郵普創c語言面試題 ---- 字母概率
arr apple void != stdio.h app words 遊戲 包含 題目描述 小明最近對概率問題很感興趣。一天,小明和小紅一起玩一個概率遊戲,首先小明給出一個字母和一個單詞,然後由小紅計算這個字母在這個單詞中出現的概率。字母不區分大小寫。 例如,給定的字母是
C語言面試題---指標篇(三)
版本宣告:本文轉載於公眾號TeachPlus C語言面試題---指標篇(三) 了解了記憶體空間,接下來我們就一起看一下指標自身用法的一些題目,先來看這樣一道題目: 分析下面程式碼:` # include <stdio.h> # include
C語言面試題---指標篇(一)
版本宣告:本文轉載於公眾號TeachPlus 指標的使用,一直是c語言面試題中必考的部分, 因為指標本身使用的複雜性與普適性,所以考點非常多,而且也可以與其他知識相互結合, 因此我們將會使用五篇專題的篇幅來介紹指標。分析下面的程式,指出程式中的錯誤:
Java《劍指Offer》面試題2:替換空格
替換空格 題目描述:請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 思路:建立StringBuffer物件,然後將StringBuffer物件轉成字串物件,接著呼叫字串物件的replace方法,將空格
面試題2:實現Singleton模式
題目:設計一個類,我們只能生成該類的一個例項 思路: 1)不能開發類的構造方法,不然誰都可以通過構造方法搭建,所以將構造方法私有化; 2)建立一個靜態例項,根據需要建立一個例項,但也要將該例項私有化,防止外部獲取該例項時例項還未建立; 3)建立一個方法獲取2中的靜態例
C語言面試題---指標篇(二)
# include <stdio.h># include <stdlib.h># include <string.h>void getMemory( char **p , int num){ *p = malloc(num);} int main() {
100道c語言面試題
題目來源: 1、中興、華為、慧通、英華達、微軟亞洲技術中心等中 外企業面試題目; 2、C 語言面試寶典(林銳《高質量程式設計第三版》)。 說明: 1、部分C 語言面試題中可能會參雜部分和C++ 相關的知 識,為了保持題目的靈活性故保留,但選題最終還是 會以C
【劍指offer】面試題2:實現 Singleton 模式
本文目錄: 懶漢式和餓漢式 解法1:只適用於單執行緒環境 (不好) 解法2:雖然在多執行緒環境中能工作,但是效率不高 (不好) 解法3:加同步鎖前後兩次判斷例項是否存在 (可行) 解法4:利用類靜態變數初始化一個例項 (推薦使用) 解法5:靜態內部類實
C語言面試題大彙總 (影象處理方向)
1、區域性變數能否和全域性變數重名? 答:能,區域性會遮蔽全域性。要用全域性變數,需要使用"::" ;區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的
【劍指Offer學習】【面試題2 : 實現Singleton 模式——七種實現方式】
題目:設計一個類,我們只能生成該類的一個例項 public class Test02 { /** * 單例模式,餓漢式,執行緒安全 */ public static class Singleton { privat
JAVA面試題2:什麼是面向物件?
面向物件是一種思想,世間萬物都可以看做一個物件,這裡只討論面向物件程式設計(OOP),Java是一個支援併發、基於類和麵向物件的計算機程式語言,面向物件軟體開發的優點: 程式碼開發模組化,更易維護和修改; 程式碼複用性強; 增強程式碼的可靠性和靈活性; 增加程式碼的可讀性。 面向物件的四大基本特