溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

整理C知識點--指針&數(shù)組

發(fā)布時間:2020-07-22 18:40:19 來源:網(wǎng)絡 閱讀:425 作者:No1Way 欄目:編程語言

指針 和 一維數(shù)組
一維數(shù)組名是個指針常量
e.g:int a[5]={1,2,3,4,5};//輸出a & a[0] 發(fā)現(xiàn) 2個值相等
一維數(shù)組名存放的是一維數(shù)組第一個元素的地址

下標和指針的關(guān)系
若a 是指針變量 那么 a[x]等價與*(a+x)//a = &a[0] *a=a[0]

一維數(shù)組需要2個參數(shù):
數(shù)組第一個元素的地址 數(shù)組的長度

e.g:void pArr(int *pArr,int len)//pArr是一維數(shù)組名,len是數(shù)組的長度

#include <stdio.h>

void OutArr(int *pArr,int len)
{
    int i;

    for (i=0;i<len;++i)
         printf("%d\n",pArr[i]);
}

int main(void)
{
    int a[5] = {1,2,3,4,5};

    OutArr(a,5);

    return 0;
}

指針變量的運算(指針變量是一個操作受限的變量)
指針變量 不能相加 相乘 相除 只能做減法(相減也是需要收到限制)
若2個指針變量指向的是同一塊連續(xù)空間中的不同存儲單元,才可以相減

e.g:
#include <stdio.h>

int main(void)
{
    int a[5] = {1,2,3,4,5};
    int *i,*j; 

    i = &a[1];
    j = &a[4];
    printf("i&j相隔%d個單元\n",j-i);
    return 0;
}

指針變量占用幾個字節(jié) sizeof:可以返回數(shù)據(jù)類型所占的字節(jié)數(shù)

#include <stdio.h>

int main(void)
{
    int a = 7;
    char b = 'b';
    double d = 10.5;//abd是不同類型的變量 
    int *i = &a;
    char *j = &b;
    double *k = &d;//ijk是不同類型的地址 

    printf("%d %d %d\n",sizeof(a),sizeof(b),sizeof(d));//4 1 8
    printf("%d %d %d\n",sizeof(i),sizeof(j),sizeof(k));//4 4 4

    return 0;
}

指針變量無論它指向什么類型的變量 該指針變量本身只占4個字節(jié)
一個變量的地址使用該變量首字節(jié)的地址表示

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI