格式区别
*和++ //都是单目运算符,从右向左运算
*p++ //先算p++,但是++在后,直接加*去内容;再++
*(p++) //同上
(*p)++ //先*p取内容,内容++,但是++在后,当前不影响
*++p //先++p,地址+1,取内容
*(++p) //同上
++*p //先取内容,++内容
++(*p) //同上
int x[5] = {10, 20, 30};
int *px = x;
printf("%d,", ++*px); //11 {11,20,30}
printf("%d\n", *px); //11
px = x;
printf("%d,", (*px)++); // 11
printf("%d\n", *px); //12 {12,20,30}
px = x+1;
printf("%d,", *px++); //20
printf("%d\n", *px); //30 {12,20,30}
px = x+1;
printf("%d,", *++px); // 30
printf("%d\n", *px); //30
1.指针修饰
1.1const修饰变量,变量的不能通过变量名修改,可以通过指针间接修改变量的值
const int a=9; // int const a=9;
a=99;
printf("%d\n",a); //打印结果还是为9
---------------------------
const int a=9;
int *p=&a;
*p=999;
printf("%d\n",a);//打印结果为999
1.2 const修饰指针
const charp; //修饰p
指针指向的内容不能修改,指针的指向可以修改
int a=9;
const int *p=&a; // int const *p=&a;
1) *p=999; //指向的内容不能修改
2)int b=999;
p=&b; //指针的指向可以修改
printf("%d\n",*p);
int const p;//修饰p
指针的指向不能改,指针指向的内容可以改
int a=9;
int *const p=&a;
1)*p=999; //指向的内容可以改
2)int b=999;
p=&b; //指针的指向不能改
printf("%d\n",*p);
int const * const p =&a;
即修饰指针的指向,又修饰指向的内容
大小端(后续还需复习)
计算机在进行超过1字节数进行存储时,会出现存储顺序不同的情况;
大端:低地址存放高字节数据,高地址存放低字节数据
小端: 低地址存放低字节数据,高地址存放高地址数据
例: 0x12345678
小端 0x78 0x56 0x34 0x12
大端 0x12 0x34 0x56 0x78