c指標基礎

2021-08-18 02:36:41 字數 1106 閱讀 3028

1.&和*為互逆操作

2.*100 = 25,這樣的操作是非法的,因為字面值100是整形,而間接訪問操作只能作用域指標型別.

如果一定要這樣操作  *(int *)100 = 25,強制轉換之後才合法.

3.++和*為同級運算子,++和*都是從右向左結合,*a++這樣的操作,會先拷貝出a在對a進行+1,然後對拷貝出來的a進行* 操作.

*++p是先對p進行+1再指向p+1的地方.

4.指標的算術運算:指標+-整數,只能用於指向陣列中的某個元素的指標.假設p為指標變數,為第乙個元素的位址,p+1為下乙個元素的位址. 指標-指標,只有當兩個指標指向同乙個陣列元素的時候才合法,減出來的結果為兩個元素之間的距離差.

5.關係運算,一般的關係運算也只能當指標指向同乙個陣列的時候才能使用.但是相等和不相等的測試可以隨意使用,因為指標要麼指向用乙個位址,要麼指向不同位址.

*p++ :*和++都是同級運算子,右結合。但++要整個表示式運算完了才運算,先提取p指向物件的值,然後p再做++運算,指向下乙個物件。

*(p++) :這個()有點絞水啊,++要整個表示式運算完了才自加,所以同上,提取的還是p指向的物件值,提取後,p就指向下乙個物件了。

(*p)++:這個可是不一樣啊,人家是先取值,然後值++;

++*p:人家是先取值,然後值++;

為什麼有的是值加加有的是位址加加,這就是括號的作用,括號將其繫結為整體。同時也看結合性。核心是p,你來個++*這就沒結合性。

指標與++ --符號進行運算

指標本身也是一種變數,因此也可以進行運算。但是因為指標變數本身存的是某個其他變數的位址值,因此該值進行* / %等運算是無意義的。兩個指標變數相加本身也無意義,相減有意義。指標變數+1,-1是有意義的。+1就代表指標所指向的格仔向後挪一格,-1代表指標所指向的格仔向前挪一格。

()  (      )  優先級別從大到小.指標的優先順序基本是在單目運算子靠後部分.

int *f(),這是返回值為指標的函式.int (*f)() 是乙個指向函式的指標,返回值為int

字串常量出現在表示式中時候,它就是乙個指標常量.編譯器把這些字元儲存在記憶體的某個位置,並儲存乙個指向第乙個字元的指標."xyz"+1實際上是指向y的乙個指標.可以像陣列名一樣可以用指標表示式或下標來使用它

C指標(基礎)

指標的定義 在科學計算中,指標 pointer 是程式語言的乙個物件,利用位址,它的值直接指向 points to 存在電腦 儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的成為 指標 意思是通過它能找到以它為位址的記憶體單元。簡言之,指標就...

this指標基礎 C )

1.每個成員函式中都包含乙個特殊的指標,這個指標的名字是固定的,成為this指標。它是指向類物件的指標,它的值是當前被呼叫的成員函式所在的物件的起始位址。通常情況下,this指標是隱式使用,作為引數被傳遞給成員函式的。例如,box類的乙個成員函式 定義是這樣的 int box volume 實際上,...

c指標基礎

指標 每個記憶體位置都有位址唯一確定並引用,指標只是位址的另乙個名字 指標變數就是乙個值為另乙個記憶體位址的變數 int const p 乙個指向整型常量的指標 可以修改指標的值,但是不能修改指標所指向的值 int const p 乙個指向整型的常量指標,不能修改指標的值,但是可以修改指標所指向的值...