1、memcpy
void * memcpy ( void * destination, const void * source, size_t num );
複製記憶體塊
從source指向的位置直接複製num個位元組的值到destination指向的記憶體塊。
對於這個函式,source和destination指向的物件的底層型別是無關的;結果是資料的乙個二進位制複製。
這個函式不檢查任何結束空字元(null)—— 它總是準確地複製num個位元組。
為了避免溢位,source和destination兩個引數指向的陣列的大小應該至少是num位元組,並且不應該重疊(對於重疊記憶體塊,
memmove是乙個更安全的方法))。
引數
destination
指向內容被複製到的目的陣列的指標,型別被轉換為void*。
source
指向複製資料的源陣列的指標,型別被轉換為void*。
num
要複製的位元組數。
返回值
返回目的指標destination。
example:
/* memcpy example */
#include #include int main ()
output:
str1: sample string
str2: sample string
str3: copy successful
2、memmove
void * memmove ( void * destination, const void * source, size_t num );
移動記憶體塊
從source指向的位置複製num個位元組的值到destination指向的記憶體塊。複製操作的發生就好像使用了中間快取,允許destination和source重疊。
對於這個函式,source和destination指向的物件的底層型別是無關的;結果是資料的乙個二進位制複製。
這個函式不檢查任何結束空字元(null)—— 它總是準確地複製num個位元組。
為了避免溢位,source和destination兩個引數指向的陣列的大小應該至少是num位元組。
引數
destination
指向內容被複製到的目的陣列的指標,型別被轉換為void*。
source
指向複製資料的源陣列的指標,型別被轉換為void*。
num
要複製的位元組數。
返回值
返回目的指標destination。
example:
/* memmove example */
#include #include int main ()
output:
memmove can be very very useful.
3、memset
void * memset ( void * ptr, int value, size_t num );
填充記憶體塊
將ptr指向的沒存塊的前num個位元組設定為特定的值value(被解釋為乙個unsigned char型別的值)。
引數
ptr
指向需要填充的記憶體塊的指標。
value
要設定的值,這個值是作為int型傳遞的,但是該函式用這個值的unsigned char型別轉換值來填充記憶體塊。
num
要是指特定值的位元組數。
返回值
返回指標ptr。
example:
/* memset example */
#include #include int main ()
output:
------ every programmer should know memset!
4、memchr
const void * memchr ( const void * ptr, int value, size_t num );在記憶體塊中定位字元void * memchr ( void * ptr, int value, size_t num );
在ptr指向的沒存塊的前num個位元組中搜尋value值得第一次出現(被解釋為乙個unsigned char型別的值),並返回指向該值的指標。
引數
ptr
指向需要被執行搜尋的記憶體塊的指標。
value
需要被定位的值。這個值是作為int型傳遞的,但是該函式用這個值的unsigned char型別轉換值來進行逐位的搜尋。
num
要是分析的位元組數。
返回值
返回指向ptr指向的記憶體塊中value值第一次出現位置的指標。
如果沒有找到value值,則該函式返回null。
example:
/* memchr example */
#include #include int main ()
output:
'p' found at position 5.
5、memcmp
int memcmp ( const void * ptr1, const void * ptr2, size_t num );
比較兩個記憶體塊
將ptr2指向的記憶體塊的籤num個位元組與ptr2指向的記憶體塊的前num個位元組進行比較,如果它們都相符合則返回0,反之則返回乙個指示其中乙個較大的非零值。
ptr1
指向記憶體塊的指標。
ptr2
指向記憶體塊的指標
num
需要比較的位元組數。
返回乙個指示兩個記憶體塊的內容間的關係的整型值。
0值表示兩個記憶體塊的內容是相等的。
乙個大於0的值表示,兩個記憶體塊中第乙個不匹配的位元組是ptr1的比ptr2的大,作為unsigned char型別比較的;小於0則表示相反。
example:
/* memcmp example */
#include #include int main ()
output:
enter a sentence: building
enter another sentence: book
'building' is greater than 'book'.
C C 記憶體拷貝函式
1 char strcpy char dest,const char src 對字串有效,也會將src字串的 0 拷貝至目的字串中,所以在設定目的字串時注意分配合理的記憶體空間 2 char strncpy char dest,const char src,size t count 對字串有效,根據...
幾個檔案處理函式
1.fseek 相關函式 rewind,ftell,fgetpos,fsetpos,lseek 標頭檔案 include 定義函式 int fseek file stream,long offset,int whence 函式說明 fseek 用來移動檔案流的讀寫位置 1 引數stream 為已開啟...
C C 數學處理函式
二 n次方 三 平方根 四 向上取整 向下取整 四捨五入 函式c庫 c 庫 作用原型 abs x 求整型數的絕對值 求浮點數的絕對值 c語言 include include intmain void c include include using namespace std intmain void...