const相關,指針相關,數組相關

#include<head.h>
#include"head.h"

int a = 3, c = 2;
const int* b = &a;
*b = 8; // error
b  = &c; // right
//const用來修飾指針所指向的變量,還是指針;可以修改指針指向地址,但不能直接修改指向內容

int* const b = &a;
*b = 8; // right
p++; // error
//const用來修飾指針本身,即是常量;可以修改指針內容,但不能修改指向位置

const int* const = &a;
eg: const int* m = &a; // 可以改變m指向的地址,但是不能直接對*m進行操作變化
定義常量,const int a = 3;
任何不會修改數據成員的函數都應用const修飾, int GetCount(void) const;
修飾形式參數,int sum(const int &a,, cont int &b); //既不會改變原參數的值,又能提高效率
修飾函數的返回值,指針傳遞的返回值加const,則不能直接對返回值修改,且只能賦值給加const修飾的同類型指針

普通函數不佔內存,但是有虛函數,會佔用一個指針大小的內存。系統需要多一個指針維護這個類的虛函數表
void *p; 空類型指針,不指向一個確定的類型數據,作用是存放一個地址

int a[3] = {1, 2, 3};
int *p = a;
*(p+2), *(a+2), a[2] 是一樣的取值,指針法,取地址法,下標法
多維數組訪問:a[2][3], *(a[2]+3), *(a+2)[3], *(*(a+2)+3)
數組指針就是指向數組的指針,int (*p)[5]; // 指向一個包含5個整數的數組
指針數組是其元素爲指針的數組, int *p[5]; //是一個包含五個元素的數組,元素都是整型指針
函數指針就是指向函數的指針,int (*p)(int, int);
使用函數指針前,必須先給它賦值,指向一個函數的入口地址, p = func1;
二級指針,指向指針的指針,int a = 3; int *p = &a; int **p = &p;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章