008、
1、對於2維陣列array而言*(*(array + i) + j)指的是:*(array+i)獲取第i行的首位址,然後在加j的出第i行第j列的位址,然後*(*(array + i) + j)得出第i行第j列的值;
2、指向常量的指標(const int *p=&x;),不能通過指標來改變所指物件的值,但指標本身可以改變,可以指向另外的物件p=s,即不可以使用*指標的形式賦值;
2.1、指向常量的指標(const int *p=&x;):意思是指標p是個變數,而x是個const int常量,所以我們可以通過改變指標的指向,如p = y,來改變指標p的值,即該變數指標所指向的位址發生改變,而不能通過*p=8來為x重新賦值,此處需理解的是*p所代表的是x的值,而p代表的是x的位址。
3、指標常量(int *const p=&x;),指標本身是乙個常量,意思是指標所指向的那個變數的位址不容改變即,p指向變數x,然而x是變數,可以通過*p來改變變數x的值,但是x所處的位址未發生改變。
4、2.1和3比較較為糾結,許仔細比較!!!!
5、對於指標的定義,指標前方的資料型別是指指標所指向的資料的資料型別,而不是指標本身的資料型別,如:定義如下:
const int *p = &x;是指x的資料型別是const int型別
int *const p = &x;是指x的資料型別是int型別,指標型別為const型別;
6、指向類型別物件的指標,可以有2種訪問物件成員(方法和屬性等)的方法,如下:point *p=&a,其中a為物件,則如a.get()可以通用使用 (*p).get() 和 p->a 訪問。
009、
1、動態申請記憶體的操作是:new 型別名t(初值列表),如
int *p = new int(2);,然後用*p訪問;
2、釋放記憶體操作delete 指標p;釋放指標p所指向的記憶體。
3、動態建立多維陣列,宣告為如:int (*p)[9];其中9代表的是行數,然後再可宣告p = new int[4][9];表示的是4列9行的2維陣列。
4、將指標作為函式引數傳遞時,可以達到引用傳遞的結果;因為傳遞的是指向位址而不是值。
5、實參是陣列名的時候形參可以是指標。
6、第45上講:指向指標的指標較為困惑!!!
7、指向指標的指標根據最後所指的資料型別來選擇指標型別,如point *p[2],可以作為引數傳遞時傳遞p即該陣列的首位址,但是形參的接受為point **a;則知道第一次的指標型別為int,然後指標型別為point.
8、指標型函式:返回值是個位址時;
如:儲存型別 資料型別 *函式名。
9、 指向函式的指標:資料指標指向資料儲存區,而函式指標指向的是程式**儲存區;
如:儲存型別 資料型別 (*函式指標名)();
10、整行輸入字串的方法cin.getline(字元陣列名,字元個數,結束符),可以包括空格;
11、cin.get(字元陣列名,字元個數,結束符);//一般用於讀取乙個字元,可以包括空格。
12、關於字串處理的一些函式(非string的函式,單獨使用的處理字元函式):
——strcat(連線),strcpy(複製)、strcmp(比較)、strlen(求長度),strlwr(轉換小寫),strupr(轉換大寫)
13、strlen("china")和sizeof("china")結果分別是5和6,原因是sizeof最後還包括了乙個0(字元陣列結束以\0)
14、使用string類時,需引用
#include
using namespace std;
15、比較指標陣列和指向陣列的指標:
int *p[5]:指標陣列,p表示有5個整形指標的陣列,使用時需要用p[x]表示位址,而*p[x]表示真值;
int (*p)[5]:指向陣列的指標,p表示有5個整形數的陣列指標,可以相當於int array[5] = *p;則,使用時(*p)[x]是資料真值,而*p表示陣列的起始位址,p[x]沒有意義;
C 初級知識學習筆記2
005 006 1 define巨集定義指令 定義帶引數的巨集被內聯函式取代。如 define max a,b a b a b 已過時 2 第36上講中的28分鐘所講的對多檔案操作方法掌握不太好!3 類宣告檔案 h 類實現檔案 cpp 類的使用檔案 main 所在的.cpp檔案 4 c 多檔案結構實...
C 初級知識
識別符號概念 識別符號是一種字串,用來命名如變數 方法 引數和許多後面要講解的程式結構。命名規則 1.字母 下劃線可以用在任何位置 2.數字不能放在首位 3.字元只能放在識別符號的首位 舉例 mydream 合法 77flower 不合法,不能以數字開頭 garden 合法 some6wordle ...
C 學習筆記 3
最近在寫code時候,發現了關於static變數的一些使用需要注意的地方。具體的情況可以看下面的例子 aclass.h 宣告了aclass class aclass int data aclass.cpp 定義了乙個static的aclass例項 include aclass.h static ac...