指针
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a[3] = { 2,7,8 };
int* p;
int j;
p = a;//让指针变量指向p,指向数组的开头
j = *p++; //答案输出为2 2 7//j=*p;p++(没有被括号括起来),*p和++的优先级一样,*p的优先级低于()(因为*p已经运算,顾为p++)
//j = (* p) ++;//j=*p;(*p)++;答案输出为3 2 3 。这个式子中的 (*p) 可以等价于 a[0] ;或p [0]
printf("a[0]=%d,j=%d,*p=%d\n", a[0], j, *p);// 2 2 7
j = p[0]++;//j=p[0],p[0]++.输出答案为2 7 8
//j = (* p) ++;//j=*p;(*p)++;答案输出为3 2 3 。这个式子中的 (*p) 可以等价于 a[0] ;或p [0]
printf("a[0]=%d,j=%d,*p=%d\n", a[0], j, *p);
return 0;
}
数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//i++代表的是i=i+1;比较难理解是后++后--(i++)
//前++(++i)正常的运算优先级规律计算就行
int main()
{
int i = -1;
int j;
j=i++>-1;//后加加拆成两部分j=i>-1;i++
printf("i=%d,j=%d\n", i,j);
printf("i的字节数=%d\n", sizeof(i));
int b = 1;
int c = 1;
int k;
k = b++ + ++b + ++c + c++;
printf("k=%d\n", k);//k=8;
//原因:b++时,b=1(这个时候b=2的,不过将2返回给了1;
//++b时,b=3
//++c时,c=2; c++时,c的值为3,但3返回给了2,即c=2
//所以原式可写成 1+3+2+2=8
//i++的原理 :先自增,然后返回自增之前的值
//++i的原理 :先自增,然后返回自增之后的值
int e = 2;
int f;
f = (3 * e++) + e;
printf("f=%d\n", f);
int h = 2;
int g;
g =h+(3 * h++);
printf("g=%d\n", g);
//结果都为8
}