c语言的true 和false
c语言非0 即为真
运算优先级
()
p++ (先使用p对应的值,p后面+1),++p (p先加1,再使用)
[]
*p1
p+1
int a=1;
int *p1=&a; // *p1,这里标识是一个指针变量。&取地址符
printf("%d\n",*p1); // *取值符或赋值
printf("%p\n",p1); // a指针的位置
int nums[2] = {1,2};
int *ptr2=nums; // 数组本身就是一个指针,不用&取地址符
++ptr |ptr++ right
++nums|nums++ wrong # 数组名是常量,指针是变量
int bb(void) {
int l1[2] = {100, 200};
int l2[2] = {300, 400};
int *p1, *p2, *p3;
p1 = p2 = l1;
p3 = l2;
printf("*p1 = %d, *p2 = %d, *p3 = %d \n", *p1, *p2, *p3);
printf("*p1++ = %d, *++p2 = %d, (*p3)++ = %d \n", *p1++, *++p2, (*p3)++);
// *p1++ 先把p1的值给返回 ,然后p1的指针 +1
// *++p2 p2的指针先加一,然后再取p2的值
// (*p3)++ 先取p3的值, 然后p3的值+1
printf("*p1 = %d, *p2 = %d, *p3 = %d \n", *p1, *p2, *p3);
}
多维数组 *的使用
//// 对于多维数组,*的使用 除最后一个是取值,其他都是取地址
// printf("%p\n",*zippo);
// printf("%d\n",**zippo);