zoukankan      html  css  js  c++  java
  • 诡异的C程序

    #include <stdio.h>
    int main(){
     unsigned char result = 1["night"]*2["girls"]+4["allnight"];
     char *of_you = "Though you was strong enough and seem never died";
     printf("You got %s", result+of_you);
     return 0;
    } 

    结果是:You got died

    解释:1["night"]就是*("night"+1),也就是'i',ascii码为105
    类似,2["girls"]是'l'(114)
    4["allnight"]是'i'(105)
    result=(105*114+105)%256=43
    result+of_you=43+"Though you was strong enough and seem never died"
    指向第43个字符

    下面的程序能得到相同的结果,数组元素的下标可以放在[]前面,而数组名放在[]中间

    #include <stdio.h>
    int main(){
        unsigned char result = "night"[1]*"girls"[2]+"allnight"[4]; 
        char *of_you = "Though you was strong enough and seem never died";
        printf("You got %s", result+of_you);
        return 0;
    }  
  • 相关阅读:
    委托
    apply()和call()
    Sql小技巧
    plsql中文乱码
    Windows8中使用IE8等低版本浏览器
    React Native
    谷歌浏览器添加flash白名单
    jsonp原理详解
    垂直居中
    window.moveTo(),window.moveBy()不生效
  • 原文地址:https://www.cnblogs.com/libao/p/2483072.html
Copyright © 2011-2022 走看看