關(guān)于指針

本文為學(xué)習(xí)使用

  • 在C語言中任意的同類型指針都可以比較大小
    指針變量是一個(gè)表示[內(nèi)存地址]的長整數(shù)而已,當(dāng)然可以比較。指向同一個(gè)數(shù)組時(shí),兩個(gè)指針的大小就表示誰指向的元素靠前或靠后。如果不是指向同一個(gè)數(shù)組,比較大小就只能看出誰指向的內(nèi)存空間地址較小,沒什么意義。

  • 數(shù)組名不代表整個(gè)數(shù)組,而代表數(shù)組首元素的地址,輸入字符數(shù)組,可用cin>> 數(shù)組名;

  • char s[]="china"; char * p; p=s;p與s不同

  • 若*p=a;
    p[i],a[i];//用法一致
    (p+i),(a+i);//用法一致
    但p為變量,a為常量
    補(bǔ)充:指針P+1 = 指針P + sizeof(指針的類型) * 1

int main(void)
{
    int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a+3;
    printf("%d", p[2]);
    return 0;
}//輸出5
  • 詭異的字符串
  1. 輸出字符數(shù)組或字符串,只需cout<<"數(shù)組名"遇\0自動(dòng)結(jié)束輸出
  2. char s[]="china"; char * p; p=s只需cout<<p,遇\0自動(dòng)結(jié)束輸出
    還要注意,s數(shù)組長度包括 '\0',p所指向的字符串長度不包括 '\0',p的內(nèi)容為s[0]
  3. 有時(shí)候可能會(huì)出現(xiàn)自己未賦值的元素被系統(tǒng)賦值為非'\0'
  4. cout<<"abcd"+1;輸出bcd
  5. 注意
     char b[111][1000],*m;
     m=b[0];//此時(shí)b[0]是一個(gè)字符串名,是一個(gè)地址
     char a[111],*m;
       m=&a[0];//此時(shí)a[0]是一個(gè)字符,是變量名
    
  6. char *language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"}; 則表達(dá)式 *language[1]>*language[3]比較的是( )
    language是一個(gè)字符指針數(shù)組,language[1]是這個(gè)數(shù)組中的第二個(gè)元素,也就是指向B,*language[1]表示取這個(gè)字符指針的值,也就是B。最后就是B和J做比較。
  • 有時(shí)候要注意是指針還是乘號(hào)
int a[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, *p[4], i;
    for (i = 0; i < 4; i++)
        p[i] = &a[i*3];
    printf("%d\n", p[1][0]);

這樣可以使得*p[4]變成一個(gè)二維數(shù)組
*(p[i] + i) = 1 ; // p[i][i] == a[i][i]對(duì)角線上的元素賦值1
*(p[i] + 4 - (i + 1)) = 1; //p[i][3-i] == a[i][3-i]另一對(duì)角線上的元素賦值1

  • 當(dāng)需要判斷*p所指向元素是否存在
    使用while(*p)更好
    while(p)可能會(huì)出錯(cuò)//不過,準(zhǔn)確來說,這兩個(gè)都可能出錯(cuò)

  • void指針:指向任何類型數(shù)據(jù)的指針可直接賦值給一個(gè)void指針,但不能將void指針直接賦給非void型指針變量,必須強(qiáng)制進(jìn)行類型轉(zhuǎn)換。實(shí)際使用void指針時(shí),要對(duì)它進(jìn)行類型轉(zhuǎn)換

  • 優(yōu)先級(jí)問題
    1.成員運(yùn)算符“.”優(yōu)先于“ * ”,所以當(dāng)p指向一個(gè)結(jié)構(gòu)體變量時(shí),(*p).name;
    2.[ ]比 * 優(yōu)先級(jí)高,當(dāng)表示指針數(shù)組時(shí),應(yīng)為 int * p[4]
    3.注意 * 與自增自減運(yùn)算符優(yōu)先級(jí)一致。
    4.指向函數(shù)的指針,與返回指針值的函數(shù)的括位置要注意。

如果有錯(cuò)誤的地方,歡迎指正喲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 心空空,念空空,靜臥椅上觀大空,人人道我在休眠,哪知空中歡喜天。 原創(chuàng)作品 (Original Article)
    一詩一境界閱讀 198評(píng)論 0 0
  • 委婉柔弱的弱態(tài),放狂放不羈的狂態(tài),怠慢懶散的疏懶態(tài),交際圓滑的周旋態(tài) 。像小鳥依人,情致玩轉(zhuǎn)讓,嬌柔親切這就是弱態(tài)...
    玲兒飛飛閱讀 564評(píng)論 0 0
  • --20080407 昨夜風(fēng)雨驟,今晨初放晴。 風(fēng)吹杏花香,側(cè)耳數(shù)落英。 花薰人獨(dú)醉,忽盼得長生。 遙望一水秀,幽...
    可以軒主人閱讀 191評(píng)論 0 0

友情鏈接更多精彩內(nèi)容