C指針初學(xué)

C指針具有很重要的作用,就不多說了。
其中學(xué)習(xí)指針首先要知道兩個(gè)符號 * 和&。
在類型后面和變量名前面添加* ,代表這是一個(gè)指針對象,如int * k,這代表一個(gè)指向int類型的指針k。
而&則是取地址符,在c中如過有int k= 10;那么使用&k,則是取出i在計(jì)算機(jī)中的地址,而指針正是指向這個(gè)地址的。
所以int * p = &k;這個(gè)表達(dá)式意思為int型指針p指向i的地址,如果要取出這個(gè)地址中所保存的值,那么直接使用 * p就可以了。
這里要區(qū)別一件事,就是int * p是申明這是一個(gè)指向int型的指針,而*p則是取出這個(gè)指針?biāo)笇ο蟮闹怠?br> 也就是:
int k=10;
int * p = &k; // 指針p指向k
printf("獲取指針p里面保存的值 %d \n", *p); // 打印出指針p中所保存的值。

指針與數(shù)組

指針與數(shù)組又是一個(gè)比較難的地方。
一個(gè)數(shù)組的地址是其第一個(gè)元素的地址,因此在c中書寫函數(shù)原型的時(shí)候,以下四種寫法是等價(jià)的:

int sum(int *ar, int n);
int sum(int *, int n);
int sum(int ar[], int n);
int sum(int [], int);

當(dāng)然了,在函數(shù)原型中書寫時(shí)可以省略參數(shù)名,但是在函數(shù)定義中是不能省略的,大家要注意。

以下是數(shù)組與指針的一些簡單使用:

char ch[] = "I'am special";
char  * pr = ch;
printf("address of ch %p \n", ch); //查看ch的地址,數(shù)組的地址即其第一個(gè)元素的地址
printf("address of pr %p \n", pr);  // 指針的值為ch的地址:
printf("address of pr %c \n", *pr); //取出ch第一個(gè)元素的值, %c指的是獲取單字符
ch[5] = 'q';    // 修改ch第5個(gè)元素s為p
printf("%c \n",ch[5] );     // 獲取ch第五個(gè)元素
printf("%c \n",*(pr+ 5));   // 通過指針獲取ch第五個(gè)元素
printf("%p \n",&ch[5] );// 獲取ch第五個(gè)元素地址
printf("%p \n", pr+5);// 通過指針獲取ch第五個(gè)元素地址
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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