C语言 指针 p++ / p-- - C语言零基础入门教程
目錄
- 一.變量 i++/i–
- 二.指針 p++/p–
- 1.通過(guò)下標(biāo)訪問(wèn)數(shù)組元素
- 2.通過(guò)指針偏移訪問(wèn)數(shù)組元素
- 三.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語(yǔ)言基礎(chǔ)入門
一.變量 i++/i–
在前面的文章 自加自減運(yùn)算符(++ i /i ++) 中介紹了關(guān)于變量自增和自減的運(yùn)算,舉個(gè)例子:
int x = 10; x++; //等價(jià) x = x + 1 = 11 ++x; //等價(jià) x = x + 1 = 12 --x; //等價(jià) x = x - 1 = 11 x--; //等價(jià) x = x - 1 = 10前++/后++的區(qū)別:
前--/后--的區(qū)別:
二.指針 p++/p–
指針: 指針相當(dāng)于一個(gè)變量,它存放的是變量在內(nèi)存中的地址,是十六進(jìn)制類型,它可以指向任意類型的數(shù)據(jù)。
**數(shù)組:****數(shù)組在內(nèi)存中是連續(xù)存放的,開(kāi)辟一塊連續(xù)的內(nèi)存空間**。數(shù)組是根據(jù)數(shù)組的下標(biāo)進(jìn)行訪問(wèn)的,多維數(shù)組在內(nèi)存中是按照一維數(shù)組存儲(chǔ)的,只是在邏輯上是多維的。
1.通過(guò)下標(biāo)訪問(wèn)數(shù)組元素
/******************************************************************************************/ //@Author:猿說(shuō)編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語(yǔ)言教程 - C語(yǔ)言 指針 p++ / p– //@Time:2021/06/16 08:00 //@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include<stdlib.h> #include<stdio.h> void main() {int arr[5] = { 10,20,30,40,50 };int len = sizeof(arr) / sizeof(arr[0]); //獲取數(shù)組長(zhǎng)度f(wàn)or (int i = 0;i<len;i++){printf("arr[%d] = %d\n", i, arr[i]);}system("pause"); } /* 輸出: arr[0] = 10 arr[1] = 20 arr[2] = 30 arr[3] = 40 arr[4] = 50 請(qǐng)按任意鍵繼續(xù). . . */2.通過(guò)指針偏移訪問(wèn)數(shù)組元素
指針作為一個(gè)變量,肯定有自己的地址,占位符使用 %p 或者 %x ;
int *p = 10; printf(" p : %p",p);// 輸出地址:004FF798**指針作為一個(gè)變量,肯定有自己的值,占位符使用 %d ,取指針的值需要在指針變量前面加上 * ,否則是取指針的地址,**例如:
int *p = 10; printf(" p : %d",*p);// 輸出值: 10 printf(" p : %p",p); // 輸出地址:004FF798數(shù)組在內(nèi)存中是連續(xù)存放的,所以可以通過(guò)指針偏移來(lái)訪問(wèn)數(shù)組,例如:
int arr[5] = { 10,20,30,40,50 }; int *p = arr; //等價(jià) *p = arr[0]; int value1 = *p++; // int value1 = arr[1]; int value2 = *p++; // int value2 = arr[2]; int value3 = *p++; // int value3 = arr[3]; int value4 = *p++; // int value4 = arr[4];在上面的例子中,通過(guò)指針 p 指向數(shù)組 arr ,默認(rèn)指針 p 指向數(shù)組的第一個(gè)元素 arr[0],通過(guò) *p++ 偏移來(lái)獲取數(shù)組每一個(gè)元素對(duì)應(yīng)的值,通過(guò)指針偏移來(lái)變量數(shù)組,舉個(gè)例子:
/******************************************************************************************/ //@Author:猿說(shuō)編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語(yǔ)言教程 - C語(yǔ)言 指針 p++ / p– //@Time:2021/06/16 08:00 //@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include<stdlib.h> #include<stdio.h>void main() {int arr[5] = { 10,20,30,40,50 };int* p = arr; //定義一個(gè)空指針int len = sizeof(arr) / sizeof(arr[0]);//計(jì)算數(shù)組長(zhǎng)度f(wàn)or (int i = 0; i < len; i++){//&arr[0]:表示取arr[0]元素的地址printf("根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):%d 對(duì)應(yīng)的元素地址是: %d 對(duì)應(yīng)的元素的值是: %d\n", i,&arr[i],arr[i]);}printf("\n");for (int i = 0;i<len;i++){// p:是一個(gè)地址//*p:取p對(duì)應(yīng)地址的值printf("根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):%d 對(duì)應(yīng)的元素地址是: %d 對(duì)應(yīng)的元素的值是: %d\n", i, p, *p);p++; //地址偏移+1,等價(jià)偏移到下一個(gè)元素地址}system("pause"); } /* 輸出: 根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):0 對(duì)應(yīng)的元素地址是: 561904944 對(duì)應(yīng)的元素的值是: 10 根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):1 對(duì)應(yīng)的元素地址是: 561904948 對(duì)應(yīng)的元素的值是: 20 根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):2 對(duì)應(yīng)的元素地址是: 561904952 對(duì)應(yīng)的元素的值是: 30 根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):3 對(duì)應(yīng)的元素地址是: 561904956 對(duì)應(yīng)的元素的值是: 40 根據(jù)下標(biāo)索引值循環(huán):數(shù)組下標(biāo):4 對(duì)應(yīng)的元素地址是: 561904960 對(duì)應(yīng)的元素的值是: 50 根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):0 對(duì)應(yīng)的元素地址是: 561904944 對(duì)應(yīng)的元素的值是: 10 根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):1 對(duì)應(yīng)的元素地址是: 561904948 對(duì)應(yīng)的元素的值是: 20 根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):2 對(duì)應(yīng)的元素地址是: 561904952 對(duì)應(yīng)的元素的值是: 30 根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):3 對(duì)應(yīng)的元素地址是: 561904956 對(duì)應(yīng)的元素的值是: 40 根據(jù)指針偏移循環(huán):數(shù)組下標(biāo):4 對(duì)應(yīng)的元素地址是: 561904960 對(duì)應(yīng)的元素的值是: 50 請(qǐng)按任意鍵繼續(xù). . . */三.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說(shuō)編程 ? C 語(yǔ)言 指針 p++ / p–
總結(jié)
以上是生活随笔為你收集整理的C语言 指针 p++ / p-- - C语言零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python运算符 - Python零基
- 下一篇: C语言 函数不定长参数 ##__VA_A