美文网首页
CSAPP 习题2.10

CSAPP 习题2.10

作者: Jianbaozi | 来源:发表于2019-01-29 23:44 被阅读0次
using namespace std;
void inplace_swap(int *x,int *y);
void reverse_array(int a[],int cnt);
int main(){
    int array[5]={1,2,3,4,5};
    reverse_array(array,5);
    for(int i=0;i<5;i++)
        cout<<array[i]<<' ';
        return 0;
}
void inplace_swap(int *x,int *y){
    *y=*x^*y;
    *x=*x^*y;
    *y=*x^*y;
}
void reverse_array(int a[],int cnt){
    int first,last;
    for(first=0,last=cnt-1;first<last;first++,last--)
        inplace_swap(&a[first],&a[last]);
}

对于任一向量a ,有~~a^a=0(^:XOR)~~
inplace_swap 利用了~~(a^b)^a=b~~属性
如果for循环中循环条件为first<=last,将导致中间元素被置为0.

相关文章

  • CSAPP 习题2.10

    对于任一向量a ,有~~a^a=0(^:XOR)~~inplace_swap 利用了~~(a^b)^a=b~~属性...

  • bomb lab 解题报告

    对应课本csapp 的实验 https://hakula.xyz/csapp/bomblab.html[https...

  • 2018-10-10 TEST CSAPP

    2018-10-10 TEST CSAPP 2018-10-10 TEST CSAPP 2018-10-10 TE...

  • 后天八卦图 QML

    import QtQuick 2.10 import QtQuick.Window 2.10 Window { ...

  • csapp

    CSAPP 2.27 2.30 2.39 2.40 2.41 2.42 2.43 2.44 2.47 2.58 2...

  • CSAPP

    进程 进程是操作系统对一个正在运行的程序的一种抽象。并发运行,则是说一个进程的指令与另一个进程的指令是交错执行的。...

  • CSAPP

    每天2页。2021年4月底,我将啃下这本700页大部头。2020年5月底,我将学会浮点数的2进制表示。 2020/...

  • CSAPP 炸弹实验解析上

    CSAPP(Computer Systems A Programmer's Perspective),中译名为深入...

  • 正确理解 LEAL (Load Effective Addres

    LEAL: leal S, D -> D ← &S 在 CSAPP (Computer Systems: A ...

  • Kafka+Zookeeper集群搭建

    环境准备 Kafka版本:kafka_2.10-0.10.2.0(2.10表示Scala版本 0.10.2.0表示...

网友评论

      本文标题:CSAPP 习题2.10

      本文链接:https://www.haomeiwen.com/subject/evafsqtx.html