1. 指针

  1. 指针变量的声明,赋值分步

    #include<stdio.h>                                                                                   
    int main(){
        int a = 1;
        int *ip;     //声明指针变量ip
        ip = &a;     //ip指向a的地址
        *ip=2;       //更改ip指向地址的值就是更改a的值
        printf("%d",a);
        return 0;
    }
    
    
  2. swap函数

    #include<stdio.h>                                                                                   
    void myswap(int* a,int* b){    // 掉用的函数声明在上面,避免出现gcc警告
        int tmp = *a;
        *a = *b;
        *b=tmp;
    }
     
    int main(){
        int a = 1,b = 2;
        myswap(&a,&b);    //传入的是参数的地址
        printf("%d",a);   //2
        printf("%d",b);   //1
    }
    ~         
    
  3. 指针操作数组(比直接操作数组速度快)

    #include<stdio.h>                                                                                   
    int main(){
        int arr[] = {1,2,3,4,5};
        int *p = arr;             //用书组名赋值给指针变量,指针变量指向数组第一个元素
        int *q = &arr[1];
        printf("%d",*p);          //1
        printf("%d",*q);          //2
        printf("%d",*(q+2));      //arr[1]向后2个元素
    }
    
    
  4. strlen的c指针实现

    #include<stdio.h>                                                                                   
    int mystrlen(char *s){
        int n=0;
        for(;*s != '';s++){  //字符串是结尾,字符数组结尾没有
            printf("&s: %p char:%c 
    ", s, *s);
            n++;
        }
        return n;
    }
    int main(){
        char ch[] = {'a','s','d','f'};
        //printf("%d
    ",mystrlen("hello world"));          //11
        printf("%p
    ", ch);                 
        printf("%d",mystrlen(ch));          //(ch+1)的指针位置就是0x7ffc8427a701,同时,指代0x7ffc8427a701位置后的所有数组元素
    }
    /**
        0x7ffc8427a700     // 可以看出,数组名指针变量确实和数组第一个元素的指针位置相同
        &s: 0x7ffc8427a700 char:a 
        &s: 0x7ffc8427a701 char:s 
        &s: 0x7ffc8427a702 char:d 
        &s: 0x7ffc8427a703 char:f 
        &s: 0x7ffc8427a704 char:� 
        &s: 0x7ffc8427a705 char: 
    */
    
原文地址:https://www.cnblogs.com/72808ljup/p/5608023.html