zoukankan      html  css  js  c++  java
  • STM32C语言指针

    char  *s = (char *)"abcdefghijklmn";
    double *s1 =(double *) s;
     long   *s2 =(long   *) s;
     int    *s3 =(int    *) s;
    
     s1++;
     s2++;
     s3++;
    
     printf("%c",*(char *)s1);
     printf("%c",*(char *)s2);
     printf("%c",*(char *)s3);
    
    char *s = (char *)"abcdefghijklmn";  //s是字符指针,指向字符串首地址
    double *s1 =(double *) s;                 //s1是 double类型指针,指向s首地址,也就是字符a存放地址。
    long *s2 =(long *) s;                        //s2是 long类型指针,指向s首地址,也就是a存放地址
    int *s3 =(int *) s;                             //s3是 int类型指针,指向s首地址,也就是a存放地址
    
    s1++;  //s1是double类型指针,8字节,所以地址+8,
    s2++;  //s1是long 类型指针,4字节,所以地址+4,
    s3++;  //s1是int 类型指针,4字节,所以地址+4,
    
    printf("%c",*(char *)s1);   //i
    printf("%c",*(char *)s2);  //e
    printf("%c",*(char *)s3);  //e
    
    答案请看代码注释:
    
    这里以double为例来解释:
    首先s是指向字符串的字符指针,然后s1指向s,因为s1是double类型指针,所以s1++是地址+8,abcdefghijklmn。
    
  • 相关阅读:
    Infosec institute n00bs CTF writeup
    CTF学习之CODE
    ThinkPHP函数详解:C方法
    流程控制的替代语法
    Jquery DOM
    YII2 请求(request)
    YII2 运行概述(Overview)
    YII2 小部件(widgets)
    YII2 过滤器 filters
    YII2 随笔 视图最佳实践
  • 原文地址:https://www.cnblogs.com/hhsxy/p/14018375.html
Copyright © 2011-2022 走看看