優先級與結合性

優先級:同一個操作數,優先執行。例如:1+2-3+8*9,先執行8*9

結合性:優先級相等的情況下,計算的方向,例如:int a, b, c; a=b=c=10;從右向左

#include <stdio.h>

int main()
{
	int a[5] = {1, 3, 5, 7, 9};
	int *p = a;
	printf("%d\n", *p++);//1, ++的優先級大於*
	
	return 0;
}

p++先結合,p++結合後p變爲p+1,但是p++表達式還是等於p,所以相當於打印*p,即爲1.



#include <stdio.h>

int main()
{
	int a[5] = {1, 3, 5, 7, 9};
	int *p = a;
	printf("%d\n",*++p);//3
	
	return 0;
}
++優先級大於*,++p現結合,結合後++p的表達式變爲p+1,所以打印*(p+1)


#include <stdio.h>

int main()
{
	int a[5] = {1, 3, 5, 7, 9};
	int *p = a;
	printf("%d\n",++*p);//2
	
	return 0;
}

優先級需要接觸,此時*p先結合 ,再結合++,相當於打印(*p)+1



發佈了58 篇原創文章 · 獲贊 21 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章