1.對指針概念的理解
? 1.1 指針本身可以看成一個變量,于是變量類型現(xiàn)在有:整型變量 a;浮點型變量float b;指針型變量 *c.
指針的表示中,類型名 *指針 變量名,eg: int *a; char *p;
這個指針變量存儲的是一個地址,因此*p 可以將其存儲的地址上的東西表示出來;逆運算是取地址,將一個東西的地址算出來給指針p,這就是賦初值的過程。因為p手上拿著目標(biāo)的地址,形象地看就像牽著遛狗的繩子,所以叫它指針。(本身沒有什么特別的)
1.2 指針在定義的時候最好要賦初值,且特殊點在于,是將目標(biāo)變量的地址賦給它,像下面這樣。
int a = 5;
char *p = &a;
此時正在定義階段,所以*表示的不是地址的內(nèi)容,而表示p是一個指針變量,規(guī)范性要求。
? 1.3 指針之間交換地址,例如char *p; char*q;直接p = q;即可
2. 指針與數(shù)組的關(guān)系
? 2.1 可否這樣理解:一個數(shù)組的首地址就是指針。在賦值的時候,可以不需要*,像同類一樣,數(shù)組ch直接將它的頭部交給指針變量s,往后假如想要訪問第2個字母,可以ch[1],也可以s[1],也可以*(s+1)。當(dāng)然也有不同,ch是數(shù)組,所占的空間是一段連續(xù)的;而指針s只占一個類型的空間。
char *s;
char ch[15]={"adskja saha"};
cin.getline(ch,15);
s = ch;
? 2.2 在函數(shù)中傳遞的形式
如果是數(shù)組的話,它的傳遞的格式大概像下面這樣:
void hanshu(int arr[]);
int main()
{
int array[]= {0,1,2,3};
hanshu(array);
}
形參帶個[ ],實際參數(shù)就是數(shù)組的名字;
類比下來,指針的傳遞格式可以是這樣的:
void hanshu(char *p)
int main()
{
char *p;
int a;
hanshu(&a);
hanshu(p);
}
形參定義一個指針,然后實際參數(shù)就是一個地址。
3.指針和字符串
? 字符串可以有兩種表示:字符數(shù)組和字符指針,和前面數(shù)組似乎是一個回事。需要注意的是,字符串作為參數(shù)傳遞只需傳遞首字母,因為結(jié)束有'\0'作為標(biāo)記。、
PS:若定義了指針變量s,并且把它和一個字符串的首地址掛鉤,對字符串的每個字母的訪問可以*s,然后下一個就直接s++,到*s==0的時候結(jié)束。
例子:統(tǒng)計一個字符串中單詞的個數(shù)。
函數(shù)部分:
//函數(shù)部分
int counnt(char *s)
{
int cnt = 0;
while(*s!='\0')
{
while(*s==' ') s++;
if(*s!='\0')
{
cnt++;
while(*s!=' '&&*s!='\0')
s++;
}
}
return cnt;
}
//函數(shù):用字符指針傳遞首地址;
// 向下掃描,while(*s不是'\0')
// 當(dāng)遇到空格,++s,空轉(zhuǎn)不計數(shù);
// 如果空格后面不是'\0',則遇到了字母;
// 當(dāng)遇到字母,空轉(zhuǎn)結(jié)束,cnt++;
// 當(dāng)仍然有字母,且不是'\0',空轉(zhuǎn)不計數(shù)。
// 如果遇到空格,空轉(zhuǎn)結(jié)束,進入下一個循環(huán);
//
定義和調(diào)用部分:
char *s;
char ch[15];;
cin.getline(ch,15);
s = ch;
cout<
結(jié)果:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文名稱:C++指針學(xué)習(xí)第一天-創(chuàng)新互聯(lián)
本文來源:http://www.chinadenli.net/article40/didsho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站營銷、網(wǎng)站設(shè)計、網(wǎng)站維護、App開發(fā)、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容