亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言中有關指針運算的問題?

C語言中有關指針運算的問題?

C
做一個好碼農 2017-05-22 17:09:51
在指針運算中,*p++是什么意思?。?課本上寫的:先取p所指變量的值,后地址加一。 是這個意思嗎?我怎么覺得是:先取p所指變量的值,后變量值加一呢?
查看完整描述

3 回答

?
江戶川秋風

TA貢獻78條經驗 獲得超21個贊

#include?<stdio.h>

int?main(int?argc,?char?*argv[])
{
	int?x=0;
	int?*p=&x;?
	printf("x的值:%d\n",x);
	printf("x在內存中的地址:%p\n",p);
	*p++;
	printf("x的值:%d\n",x);
	printf("x在內存中的地址:%p\n",p);
	return?0;
}

運行結果:

x的值:0

x在內存中的地址:0022FF44

x的值:0

x在內存中的地址:0022FF48



相當于把x往后移動了4個字節


查看完整回答
1 反對 回復 2017-05-22
?
望遠

TA貢獻1017條經驗 獲得超1032個贊

這里有運算符優先級的問題,*p++這里先進行*p運算,取出指針p所指變量地址的值,再進行++運算,你理解的沒錯,書上的應該這樣寫*(p++)
查看完整回答
1 反對 回復 2017-05-22
  • onemoo
    onemoo
    ++ 的優先級要高于 * 的,所以 *p++ 就是 *(p++),書上寫的沒錯。
  • 望遠
    望遠
    哦哦,記錯了,這兩個運算符同級但是計算從右至左運算。
  • onemoo
    onemoo
    額...你確實是記錯了。 這個后置自增的優先級要高于 *,前置自增才是和 * 同級。
點擊展開后面3
?
慕粉2201162086

TA貢獻2條經驗 獲得超0個贊

指針變量儲存的就是變量的地址值
查看完整回答
反對 回復 2017-05-22
  • 3 回答
  • 1 關注
  • 2564 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號