1.
請問以下**有什麼問題:
int main()
沒有為str分配記憶體空間,將會發生異常
問題出在將乙個字串 複製進乙個字元變數指標所指位址。雖然可以正確輸出結果,但因為越界進行記憶體讀寫而導致程式崩潰。
char* s="aaa";
printf("%s",s);
s[0]='b';
printf("%s",s);
有 什麼錯?
"aaa"是字串常量。s是指標,指向這個字串常量,所以宣告s的 時候就有問題。
cosnt char* s="aaa";
然後又因為是常量,所以對是s[0]的 賦值操作是不合法的。
1、寫乙個「標準」巨集,這個巨集輸入兩個 引數並返回較小的乙個。
#define min(x, y) ((x)>(y)?(y):(x))//結尾沒 有;
2、嵌入式系統中經常要用到無限迴圈,你怎麼用c編寫死迴圈。
while(1){}或 者for(;;)
3、關鍵字static的作用是什麼?
定 義靜態變數
4、關鍵字const有什麼含意?
表示 常量不可以修改的變數。
5、關鍵字volatile有什麼含意?並舉出三個不同的例子?
提示編譯器物件的值可能在編譯器未監測到的情況下改變。
int (*s[10])(int) 表示的是什麼啊
int (*s[10])(int) 函式指標陣列,每 個指標指向乙個int func(int param)的函式。
1.有 以下表示式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請問下列表示式哪些會被編譯器禁 止?為什麼?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 這 是個什麼東東,禁止
*d 說了是const, 禁止
e = &a 說了是const 禁止
const *f const =&a; 禁止
2.交換兩個變數的值,不使用第三個變數。即a=3,b=5,交換 之後a=5,b=3;
有兩種解法, 一種用算術演算法, 一種 用^(異或)
a = a + b;
b = a - b;
a = a - b;
or a = a^b;// 只能對int,char..
b = a^b;
a = a^b;
or a ^= b ^= a;
3.c和c++中的struct有什 麼不同?
c和c++中struct的主要區別是c中 的struct不可以含有成員函式,而c++中的struct可以。c++中struct和class的 主要區別在於預設的訪問許可權不同,struct預設為public,而class默 認為private
4.#include
#include
void getmemory(char *p)
int main( )
程式崩潰(並沒有崩潰),getmemory中的malloc 不 能返回動態記憶體, free()對str操作很危險
5.char szstr[10];
strcpy(szstr,"0123456789");
產生什麼結果?為什麼?
長 度不一樣,會造成非法的os
c 經典面試題
1 標頭檔案中的 ifndef define endif 幹什麼用?答 防止該標頭檔案被重複引用。2 include 和 include filename.h 有什麼區別?答 對於 include 編譯器從標準庫路徑開始搜尋 filename.h 對於 include filename.h 編譯器從...
C 經典面試題
1.輸入乙個字串,將其逆序後輸出。使用c 不建議用偽碼 include using namespace std void main a p malloc 1024 應該寫成 p char malloc 1024 沒有釋放p的空間,造成記憶體洩漏。8.下面的 有什麼問題?並請給出正確的寫法。void ...
C 經典面試題
c 知識總結目錄索引 二 哪些函式不能宣告成虛函式 三 為什麼析構函式和建構函式內不能呼叫虛函式 四 為什麼析構函式最好宣告成虛函式 五 實現乙個不能被繼承的類 六 實現乙個類定義出來的物件都在堆上面 七 實現乙個類定義出來的物件都在棧上面 八 實現乙個類,定義出的物件不能在堆上 九 用c語言實現繼...