1.关于指针的一些笔记

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);
posted @ 2022-04-24 18:50  mk-备忘  阅读(31)  评论(0)    收藏  举报