摘要:我們平時說指針,也可以指指針變量。是指針變量這段表達(dá)式的意思是定義了一個指針變量,里面存放的是的地址。叫做指針類型就叫做指針變量指針類型又是什么既然變量有不同的類型,比如整型,浮點型等。
類型名 指針變量 = 地址;例如:int* pa = &a;//我們這里的指針類型叫做int*,我讀做(yin te 星號)。//pa是指針變量
int a = 10;
- 注意:
- int* 是一個類型。叫做指針類型
- pa就叫做指針變量
int* pa = &a;
char *pc = NULL;int *pi = NULL;short *ps = NULL;long *pl = NULL;float *pf = NULL;double *pd = NULL;//NULL為空指針。
- 指針的類型決定了指針向前或者向后走一步(也就是地址+1)有多大(能走多少個字節(jié))
- 指針的類型決定了,對指針解引用的時候有多大的權(quán)限(能操作幾個字節(jié))。
int main(){ int n = 10;//定義整型變量n,初始化為10 char* pc = (char*)&n;//定義字符類型指針變量pc,初始化為n的地址 int* pi = &n;//定義整型指針變量pi,初始化為n的地址 printf("%p/n", &n); printf("%p/n", pc); printf("%p/n", pc + 1); printf("%p/n", pi); printf("%p/n", pi + 1); return 0;}
對一個狗形容為野的話,可以理解為這個野狗經(jīng)常占別人的地盤,或者隨機(jī)出現(xiàn)在任何地方
一、 指針未初始化
int main(){ int *p;//局部變量指針未初始化,默認(rèn)為隨機(jī)值 *p = 20; return 0; }
二、 指針越界訪問
#include <stdio.h>int main(){ int arr[10] = {0}; int *p = arr; int i = 0; for(i=0; i<=11; i++) { //當(dāng)指針指向的范圍超出數(shù)組arr的范圍時,p就是野指針 *(p++) = i; } return 0; }
- 指針初始化(就是把野狗栓到一個地方,不讓他隨便占別人的地盤)
- 小心指針越界(把野狗拴好,避免掙脫繩子)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124784.html
摘要:另外,通過指針可以更便捷地操作數(shù)組。在一定意義上可以說,指針是語言的精髓。野指針成因除了未初始化還有就是越界訪問或者指針指向空間已經(jīng)釋放。所以不難知道兩個地址相減就是元素的個數(shù),這個表達(dá)式的前提是兩個指針指向同一塊空間。 ...
摘要:函數(shù)底層實際上是對指針的操作隸書向,范圍內(nèi)比較等于的第一個元素返回迭代器。指定位置元素的刪除操作使用查找所在位置的刪除位置的數(shù)據(jù),導(dǎo)致迭代器失效。因此刪除中任意位置上元素時,就認(rèn)為該位置迭代器失效了。 ...
摘要:在位機(jī)器上,如果有個地址線,那一個指針變量的大小是個字節(jié),才能存放一個地址。就是一個指針變量,也有自己的類型,指針變量的類型我們可以發(fā)現(xiàn)指針的定義方式是類型星號。也就是說存儲什么變量類型就用什么指針變量類型。 ...
摘要:指針變量可以存放基本類型數(shù)據(jù)的地址,也可以存放數(shù)組函數(shù)以及其他指針變量的地址。數(shù)組名表示的是整個數(shù)組所占的字節(jié)數(shù)。在這里數(shù)組指針的類型是。這也是我們可以用數(shù)組指針來接收二維數(shù)組數(shù)組名的原因。 目錄 零.前言 一.指針的定義 二.指針類型的意義 1.指針類型決定了指針解引用時一次訪問幾個字...
閱讀 4956·2021-11-25 09:43
閱讀 1199·2021-11-24 09:38
閱讀 1910·2021-09-30 09:54
閱讀 2820·2021-09-23 11:21
閱讀 2381·2021-09-10 10:51
閱讀 2385·2021-09-03 10:45
閱讀 1176·2019-08-30 15:52
閱讀 1781·2019-08-30 14:13