编程范式34节代码记录

#include<iostream>
#include<string.h>

using namespace std;

struct fraction{
    int num;
    int denom;
};

struct student{
    char *name;
    char suid[8];
    int numUnits;
};

// // extern "C"  
void intswap(int *ap,int *bp)//int版本
{
    int tmp=*ap;
    *ap=*bp;
    *bp=tmp;
}

void allswap(void *vp1,void *vp2,int size)//泛型版本,用于于系统类型
{
    char buffer1[size];
    memcpy(buffer1,vp1,size);//无需显示指出复制的空间大小
    memcpy(vp1,vp2,size);
    memcpy(vp2,buffer1,size);
    
}
/*
    比如int a=10; int *p=&a;
    cout<<*p<<endl; 输出a的值,就是解引用操作。
*/



void *lsearch(void *key,void *base,int n,int elemszie)
{   
    for(int i=0;i<n;i++){
        void *elemAddr=(char *)base+i*elemszie;//==base[i]
        if(memcmp(key*elemAddr,elemszie)==0){
            return elemAddr;//返回了要找的位置地址??没弄懂
        }
    }
    return null;
}

int main()
{
    // N1
    // double d=3.1416;
    // char ch=*(char *)&d;
    // char ch2=(char)d;
    // cout<<d<<endl;
    // cout<<ch<<endl;
    // printf("ok? %c",ch2);
    // 

    //N2
    // short s=45;
    // double d=*(double*)&s;//以double形式解释
    // cout<<d<<endl;

    //N3
    // fraction p1;
    // p1.num=22;
    // p1.denom=7;
    // cout<<&(p1.num)<<endl<<&(p1.denom)<<endl;

    // cout<<p1.num<<"&"<<p1.denom<<endl;

    // ((fraction*)&(p1.denom))->num=12;
    // cout<<p1.num<<"&"<<p1.denom<<endl;

    // ((fraction*)&(p1.denom))->denom=33;//33被存到了pi.denom 后面(+4地址)的地方
    // cout<<p1.num<<"&"<<p1.denom<<endl;

    // cout<<((fraction*)&(p1.denom))[0].denom<<endl;

    // ((fraction*)&(p1.num))->num=66;
    // cout<<p1.num<<"&"<<p1.denom<<endl;

    // ((fraction*)&(p1.num))->denom=77;
    // cout<<p1.num<<"&"<<p1.denom<<endl;

    //N4
    // int array[10];
    // array[0]=44;//array=&arrau[0];
    // array[9]=100;
    // array[5]=45;
    // array[10]=1;
    
    // for(int i=-10;i<=10;i++){
    //     array[i]=i;
    //     cout<<array+i<<ends;
    // }

    // cout<<endl<<array<<endl;
    // int arr[5];
    // arr[3]=4;
    // ((short *)arr)[7]=2;
    // cout<<arr[3]<<endl;

    //N5
    // student pupils[4];

    // pupils[0].numUnits=21;
    // pupils[0].name="Adam";
    // pupils[3].name=pupils[0].name+6;
    // strcpy(pupils[1].suid,"40415xx");
    // strcpy(pupils[3].name,"123456");

    //N6 c语言中的“泛型”
    // int m1=10,m2=20;
    // intswap(&m1,&m2);
    // cout<<m1<<ends<<m2<<endl;
    
    // allswap(&m1,&m2,sizeof(int));
    // cout<<m1<<ends<<m2<<endl;

    // double d=3.1416,e=2.71828;
    // allswap(&d,&e,sizeof(double));
    // cout<<d<<ends<<e<<endl;

    // //x86的pc采用小端表示,可以正确的交换
    // //大端的表示会让i增大
    // int i=44;
    // short s=5;
    // allswap(&i,&s,sizeof(short));
    // // allswap(&i,&s,sizeof(int));
    // cout<<i<<ends<<s<<endl;
    
    //    交换字符串(交换指针的指向)
    // char *husband="John";
    // char *wife="Ama";
    // allswap(&husband,&wife,sizeof(char*));//sizeof(char*)=8(在我的电脑上);
    // allswap(husband,wife,sizeof(char*));
    // cout<<husband<<endl<<wife<<endl;

    //N7 泛型的遍历查找



}

编程范式公开课的听课时敲的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到高级爱心代码编程,Python是一个非常流行和强大的选择。下面是一些常见的高级爱心代码编程概念和技术,你可以在Python中使用它们: 1. 生成器表达式:生成器表达式是一种简洁而高效的方式来创建可迭代对象。它们可以用于处理大量数据或者在内存有限的情况下进行迭代操作。 2. 装饰器:装饰器是一种特殊的函数,它可以用于修改其他函数的行为。装饰器可以用于添加日志记录、性能分析、缓存等功能。 3. 上下文管理器:上下文管理器是一种用于管理资源的机制,它可以确保在使用完资源后正确地释放它们。通过实现`__enter__`和`__exit__`方法,你可以创建自己的上下文管理器。 4. 元编程:元编程是指在运行时创建或修改程序的能力。Python提供了一些元编程工具,如元类和装饰器,使得你可以动态地修改类和函数的行为。 5. 并发编程:Python提供了多线程和多进程的支持,使得你可以编写并发执行的程序。你可以使用线程或进程来执行耗时的任务,从而提高程序的性能。 6. 异步编程:异步编程是一种编写高效且响应性良好的程序的方式。Python提供了`asyncio`库,使得你可以使用协程来编写异步代码。 7. 函数式编程:函数式编程是一种编写函数式代码范式。Python提供了一些函数式编程的特性,如高阶函数、匿名函数和列表推导式。 8. 数据科学和机器学习:Python在数据科学和机器学习领域非常流行。你可以使用库如NumPy、Pandas和Scikit-learn来进行数据处理、分析和建模。 这些只是高级爱心代码编程中的一些概念和技术,Python提供了丰富的库和工具,使得你可以更加灵活和高效地编写代码。希望这些信息对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值