單片機編程中,涉及指針的地方很多,需要多看多練習(xí)多總結(jié)。
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供讓胡路網(wǎng)站建設(shè)、讓胡路做網(wǎng)站、讓胡路網(wǎng)站設(shè)計、讓胡路網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、讓胡路企業(yè)網(wǎng)站模板建站服務(wù),10余年讓胡路做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
int main(void)
{
unsigned int *pInt32;//指向32位無符號整數(shù)的指針
unsigned int UINT32_1;//32位的無符號整數(shù)
unsigned int Array1_UINT32[]={1,9,0,1};//存儲4個32位無符號整數(shù)的數(shù)組
unsigned short UINT16_1;//16位的無符號整數(shù)
unsigned char UINT8_1;//無符號的字符,8位的無符號整數(shù)
unsigned char UINT8_2[]={"VC++6.0"};//無符號的字符數(shù)組
UINT16_1=401;
UINT32_1=19;
pInt32=&UINT32_1;
printf("------\n");
printf( "*pInt32的指針地址:%x,存放的內(nèi)容:%x,指向的內(nèi)容:%d \n",&pInt32,pInt32,*pInt32);
printf("------\n");
printf( "變量UINT32_1的地址:%x,內(nèi)容:%%d\n",&UINT32_1,UINT32_1);
pInt32=Array1_UINT32;
printf( "*pInt32的指針地址:%x,存放的內(nèi)容:%x,指向的內(nèi)容:%d \n",&pInt32,pInt32,*pInt32);
printf( "Array1_UINT32數(shù)組的地址:%x,內(nèi)容:%d\n",&Array1_UINT32,Array1_UINT32[0]);
printf("--強制轉(zhuǎn)換--\n");
//pInt32=&UINT16_1;//不報錯
pInt32=(unsigned int)(&UINT16_1);
printf( "UINT16_1的地址:%x,內(nèi)容:%d\n",&UINT16_1,UINT16_1);
printf( "*pInt32的指針地址:%x,存放的內(nèi)容:%x,指向的內(nèi)容:%d \n",&pInt32,pInt32,*pInt32);
return EXIT_SUCCESS;
}
輸出:
變量UINT32_1的地址:12ff40,內(nèi)容:%d
pInt32的指針地址:12ff44,存放的內(nèi)容:12ff30,指向的內(nèi)容:1
Array1_UINT32數(shù)組的地址:12ff30,內(nèi)容:1
--強制轉(zhuǎn)換--
UINT16_1的地址:12ff2c,內(nèi)容:401
pInt32的指針地址:12ff44,存放的內(nèi)容:12ff2c,指向的內(nèi)容:-859045487
#include <stdio.h>
int main(void)
{
char pVar="123";
char p1="YBDWYQCY";
char* p3="YBDWYQCY";
char p5[]="YBDWYQCY";
printf("指針p1地址:%x,指針p3地址:%x,數(shù)組p5地址:%x\n",&p1,&p3,&p5);
printf("指針p1內(nèi)容:%x,指針p3內(nèi)容:%x,數(shù)組p5內(nèi)容:%x\n",p1,p3,p5);
printf("*p1指向:%x,*p3指向:%x\n",*p1,*p3);
printf("*(p1+1)指向:%x,*(p3+1)指向:%x\n",*(p1+1),*(p3+1));
printf("----------------\n");
printf("p5[0]地址:%x,p5[0]內(nèi)容:%c\n",&p5[0],p5[0]);
printf("----------------\n");
printf("pVar改變前:%s\n",pVar);
pVar=p1;
printf("pVar改變后:%s\n",pVar);
return 0;
}
輸出:
pVar改變前:123
pVar改變后:YBDWYQCY
總結(jié):
1、unsigned int *pInt32;//指向32位無符號整數(shù)的指針,
pInt32=&UINT32_1;
前面是定義一個指針,pInt32里面放的是地址,地址指向的是具體的內(nèi)容(值),而pInt32本身也有地址,它們都是可以改變的。
是取值符號,pInt32表示取得它地址所指的值,&是得到地址的符號。
2、指針可以強制轉(zhuǎn)換,但類型最好一致,否則有可能出現(xiàn)不可預(yù)料的結(jié)果。
3、對于定義指針前面的修飾符號,按照從右向左來理解:
const int p; //指針可改變,但是所指的內(nèi)容不可以變=》p是指向整數(shù)常量的指針
int const p;//指針不可改變,但是所指的內(nèi)容部可改變=》p是常量指針,指向整數(shù)
4、char p和char p是一樣的指針定義,指針定義要連同賦值一起,char *p是標準寫法。
本文名稱:C語言編程中的指針
URL鏈接:http://m.newbst.com/article26/ppicjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、關(guān)鍵詞優(yōu)化、移動網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、ChatGPT、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)