1. 程式人生 > >C基礎知識1

C基礎知識1

bzero和memset函式

#if defined(PJ_HAS_BZERO) && PJ_HAS_BZERO!=0

    bzero(dst, size);

#else

    memset(dst, 0, size);

#endif

bzero函式:

函式原型:void bzero(void *s, int n);

標頭檔案:#include <string.h>

功能:將字串s的前n個位元組置為0,一般來說n通常取sizeof(s),將整塊空間清零。

char str[10];
bzero( str, sizeof(str) );

struct node
{
    char a;
    int str[4];
    double b;
};
struct node Test;
bzero( &Test, sizeof(Test) );//結構體的名稱不是結構體的地址因此我們需要在結構體的名稱前面加上&運算子

memset函式:

函式原型:void *memset(void *s,int c,size_t n);

標頭檔案:#include <string.h> 或者#include <memory.h>

說明:將s中前n個位元組替換為c並返回s

作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法

1)若s指向的地址是char型別的,c的值可以是任意字元值;

2)若s指向的地址不是char型別,c的值只能是-1或者0。

記憶體拷貝函式

void *memcpy(void *dest, const void *src, size_t n);

memcpy函式的功能是從源src所指的記憶體地址的起始位置開始拷貝n個位元組到目標dest所指的記憶體地址的起始位置中。

指標函式和函式指標:

指標函式,一個返回指標的函式,其本質是一個函式,而該函式的返回值是一個指標。 
宣告格式為:型別識別符號 *函式名(引數表)

int *fun(int x,int y);

在呼叫指標函式時,需要一個同類型的指標來接收其函式的返回值。

函式指標,其本質是一個指標變數,該指標指向這個函式。總結來說,函式指標就是指向函式的指標。 
宣告格式:型別說明符 (*函式名) (引數) 

int (*fun) (int x, int y)//函式指標是需要把一個函式的地址賦值給它
//
fun = &Function;
fun = Function;
//
x = (*fun)();
x = fun();

指標函式本質是一個函式,其返回值為指標。 
函式指標本質是一個指標,其指向一個函式。