C++指針學習第一天-創(chuàng)新互聯

1.對指針概念的理解

我們提供的服務有:成都網站設計、成都做網站、微信公眾號開發(fā)、網站優(yōu)化、網站認證、巴楚ssl等。為千余家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的巴楚網站制作公司

? 1.1 指針本身可以看成一個變量,于是變量類型現在有:整型變量 a;浮點型變量float b;指針型變量 *c.

指針的表示中,類型名 *指針 變量名,eg: int *a; char *p;

這個指針變量存儲的是一個地址,因此*p 可以將其存儲的地址上的東西表示出來;逆運算是取地址,將一個東西的地址算出來給指針p,這就是賦初值的過程。因為p手上拿著目標的地址,形象地看就像牽著遛狗的繩子,所以叫它指針。(本身沒有什么特別的)

1.2 指針在定義的時候最好要賦初值,且特殊點在于,是將目標變量的地址賦給它,像下面這樣。

int a = 5;
char *p = &a;

此時正在定義階段,所以*表示的不是地址的內容,而表示p是一個指針變量,規(guī)范性要求。

? 1.3 指針之間交換地址,例如char *p; char*q;直接p = q;即可

2. 指針與數組的關系

? 2.1 可否這樣理解:一個數組的首地址就是指針。在賦值的時候,可以不需要*,像同類一樣,數組ch直接將它的頭部交給指針變量s,往后假如想要訪問第2個字母,可以ch[1],也可以s[1],也可以*(s+1)。當然也有不同,ch是數組,所占的空間是一段連續(xù)的;而指針s只占一個類型的空間。

char *s;
    char ch[15]={"adskja saha"};
    cin.getline(ch,15);
    s = ch;

? 2.2 在函數中傳遞的形式

如果是數組的話,它的傳遞的格式大概像下面這樣:

void hanshu(int arr[]);

int main()
{
    int array[]= {0,1,2,3};
    hanshu(array);
}

形參帶個[ ],實際參數就是數組的名字;

類比下來,指針的傳遞格式可以是這樣的:

void hanshu(char *p)

int main()
{
    char *p;
    int a;
    hanshu(&a);
    hanshu(p);
}

形參定義一個指針,然后實際參數就是一個地址。

3.指針和字符串

? 字符串可以有兩種表示:字符數組和字符指針,和前面數組似乎是一個回事。需要注意的是,字符串作為參數傳遞只需傳遞首字母,因為結束有'\0'作為標記。、

PS:若定義了指針變量s,并且把它和一個字符串的首地址掛鉤,對字符串的每個字母的訪問可以*s,然后下一個就直接s++,到*s==0的時候結束。

例子:統(tǒng)計一個字符串中單詞的個數。

函數部分:

//函數部分
int counnt(char *s)
{
    int cnt = 0;
    while(*s!='\0')
    {
        while(*s==' ') s++;
        if(*s!='\0')
        {
            cnt++;
            while(*s!=' '&&*s!='\0')
                s++;
        }
    }
    return cnt;
}
 //函數:用字符指針傳遞首地址;
 //         向下掃描,while(*s不是'\0')
 //         當遇到空格,++s,空轉不計數;
 //         如果空格后面不是'\0',則遇到了字母;
 //         當遇到字母,空轉結束,cnt++;
 //         當仍然有字母,且不是'\0',空轉不計數。
 //         如果遇到空格,空轉結束,進入下一個循環(huán);
 //

定義和調用部分:

char *s;
    char ch[15];;
    cin.getline(ch,15);
    s = ch;
    cout<

結果:

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

本文名稱:C++指針學習第一天-創(chuàng)新互聯
本文來源:http://bm7419.com/article40/didsho.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站收錄網站營銷、網站設計、網站維護、App開發(fā)、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯