原创 關於四個swap函數的歸類

    在學習C語言函數那一章節的時候我們第一次認識了swap。當時書上舉這個例子是爲了說明函數的“單向值傳遞”原理,即在函數調用的時候,實參總是將自己的值單向傳遞給形參,而不能反過來,並且在這個過程中形參的改變不會導致實參的改變。後來,

原创 一個很容易忽視的死循環例子

    平時大家看書學知識的時候往往會有種錯覺,就是認爲那些最基礎不過的知識點自己應該早就掌握好了,這樣就很容易導致一種結果——書本是看完了,然而卻只不過是一個簡單的走馬觀花,讓知識在大腦中重現了一次而已,並沒有加深對知識的理解,那麼這樣

原创 一個程序員面試題目的簡單分析

    下面這個簡短的程序來自於《程序員面試寶典》指針部分,是美國一著名計算機嵌入式公司的面試題。且看程序: #include<iostream> using namespace std; char *GetMemory(void) {

原创 內存分配函數——alloca()

     C語言中常用的內存分配函數主要有malloc()、calloc()、realloc(),這些函數用於從堆中動態獲得一塊內存。一般爲了避免發生內存泄露的現象,每次調用這些函數時都會在其後有對應的free()函數出現,然而有時候可能

原创 關於線程的一點體會

歷史總要向前發展。馬克思主義哲學上講,生產力決定生產關係,生產關係必須要適應生產力的發展,否則就必須以革命或者改革的方式對現有的生產關係進行調整以更好的適應生產力的發展。這一點在計算機技術的發展歷史中其實也得到了充分驗證。當多道程序設計出

原创 螺旋隊列

21    22    23   24    25 20    7      8     9     10 19    6      1     2     11 18    5      4     3     12 17   16

原创 關於static之一二三

  學過C或者C++程序設計語言的同學一定對關鍵字static不是很陌生,但是是否對其非常熟悉,熟練掌握其用法,把握其本質和精華,我想大部分同學未必如此。static是C語言32個關鍵字中的一員,造成大家對它掌握不是很深刻的原因我想可能是

原创 訪問數組元素的方法小結

一)、一維數組和指針 若有以下語句: int *p,s[10],I; p=s; 則s[i]的地址可用下面三種方法表示: (1)&s[i]     (2) s+i     (3)p+i。 因此可以用s[i],*(s+i),*(p+i)來表示

原创 關於“重定位”及其相關的幾個概念

      重定位是多道程序設計中一個非常重要的概念,它是多道程序在內存中同時運行的基礎。所謂重定位就是將邏輯地址空間變換(或稱映射)爲實際的物理地址空間,或者把某個相對地址變換(或映射)主存的絕對地址。該定義涉及到絕對地址、相對地址和邏

原创 和字符串相關的幾個面試題目

一、編寫程序實現字符串反轉輸出  //實現字符串反轉輸出 #include <stdio.h> #include <string.h> #include <stdlib.h> void f(char *src) { int len=st

原创 面試中常考的一類特殊的交換題目

1、There are two int variables : a and b , don't use "if","? :","switch" or other judgement statements , find out the bi

原创 類型隱式轉換

臺灣某著名CPU生產公司2005年招聘中有一個面試題爲:下面程序的結果是什麼? char foo(void) {     unsigned int a=6; int b=-20; char c; (a+b>6)?(c=1):(c=0);