并非特意比较,也没有贵贱之嫌,对比着学和互相借鉴总之是有好处的吧我觉得

目录

1.命名空间

2.结构体

3.模板与泛型

4. 为类型取别名(创建同义词):typedef

5.只读变量

6.lambda表达式的应用

7.宏定义

8.字符表示

9.整型表达方式

10.整型溢出表达

11.字符数组表达

12.字符串表达

13.常量表达形式

14.const关键字的限制和分级作用


1.命名空间   

py有没有命名空间,如果没有,如何解决标识符冲突问题?c的命名空间一定要写吗?

2.结构体 

c的结构体和py字典好像,那为什么py中不能用字典来代替对象使用?(问的有点蠢)

3.模板与泛型   

c中有模板(泛型编程的基础),Python中有吗,如果没有那有什么其他的方式达到这种代码复用的效果?java 中有吗?(有java什么事?)
  “  template模板并没有我们想的那么高大上,就是说仅仅一个函数可以千变万化,其实并不是千变万化也并不是一个函数;
        我们刚刚也看到了,模板的底层就是通过看你传入参数的类型,
    给你分配一个适用你传入类型的函数,你传入int类型,他就给你一个适用int类型的函数,
    你传入char他就给你一个适用char类型的函数;如果你连续传入int、char等n个类型进行排序,那么他的底层就会给你分配n个函数,并不是一个函数实现的类型自适应;
    总结
        1、我们使用模板的目的就是为了提高代码的复用性,减少重复代码的编写;
        2、函数模板的底层并不是只有一个函数完成的,它是根据你传入参数的类型,给你分配一个适用你传入类型的函数;如果你连续传入n个类型,他就会给你分配n个函数;”
    ————————————————
    版权声明:本文为CSDN博主「是星星鸭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_52572621/article/details/127872426
    以下参考:https://blog.csdn.net/m0_65508678/article/details/126673369

4. 为类型取别名(创建同义词):typedef

typedef代码简化
     上面讨论的 typedef 行为有点像 #define 宏,用其实际类型替代同义字。
    不同点是 typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。例如:
    c中的typedef为现有类型创建一个新的名字,py中怎么实现这种功能?
    typedef int size;
    此声明定义了一个 int 的同义字,名字为 size。
    注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size:
    void measure(size * psz); size array[4];size len = file.getlength();std::vector <size> vs; 
 
    c中的typedef还可以掩饰符合类型,如指针和数组?这块还没弄清除,后续补充
    c中的typedef struct 结构名
    {
    类型 变量名;
    类型 变量名;
    ...
    } 结构别名;  能够在定义结构体的时候就直接指定一个别名,python在定义类的时候可以使用别名吗?
    
   c中struct _hello{
    int x,y;
    } hello; //可以同时定义类和对象,python中可以吗?

5.只读变量

c中const用来限定某类型变量为只读,在后续程序中不可更改其值,py中哪个关键字可以做到吗?如果没有关键字有什么方式达到目的?

6.lambda表达式的应用

py中有lambda函数,C有吗?怎么表示的?
py的匿名函数,一次性嵌入性的调用,不需要提供给其他地方调用它,也是一种闭包,同时也是一个函数对象,内部创建了一个重载()操作符的类
        lambda x,y: x*y    参数是x,y,返回x*y的值
        在map(lammda x: x*2,list)   返回一个每个元素乘以2之后的列表
        c中的lambda可以参考:http://www.360doc.com/content/22/1025/00/78357527_1053155816.shtml
    c中的lambda表达式如下示例,c11中新增好像?
        [](){}():
        []:代表lambda的开始,
        ():第一个括号表示函数参数,若无参数将要传递,可以省略
                {}:函数体,具体执行表达式的地方
                ():代表函数调用

7.宏定义

c语言中的宏定义,py有常量的概念吗?
c 常量和宏定义参考:https://blog.csdn.net/m0_66005670/article/details/128010706
c中  宏表示一个符号常量,其表示一个字符串,宏处理是由预处理程序完成的

#跨行宏定义:https://blog.csdn.net/qq_41854911/article/details/121196531
    #定义一个交换数值的多行宏,使用反斜杠连接不同行
    #define SWAP(a,b) do { \
        int t = 0;\
        t = a;\
        a = b;\
        b = t;\
    } while(0)

#define B(n) 2*n
    #define DL "\t"
    int main{
        printf("Line1%c", DL);
        printf("%d\n",  B(4+2));
    }
    
    #注销宏定义
    #undef DL

8.字符表示

c 语言中的单引号中只能有单个字符,多个字符需要双引号,py单引号可以放多个吗?
c语言中的单引号,特殊性在于只能有一个字符
py中的单引号和双引号一样使用,可以任意长字符串,使用格式化和正则的时候有些不同

9.整型表达方式

c 语言中整型变量的分为无符号和有符号,py为什么没有分?
    参考:
    https://blog.csdn.net/zcx020307/article/details/126095836
    https://blog.csdn.net/zcx020307/article/details/126095836
    byte 字节 1 正负2^7  
    short : 短整型 2 正负2^15    unsigned short 2^16    
    int : 基本类型 4 正负2^31    unsigned int 2^32 
    long:长整型 4 正负2^31     unsigned long 2^32
    longlong: 长长整型 8 正负2^63 unsigned long long 2^64
    无符号整型比有符号整型在正整数上都要大一倍
    #include <stdio.h>
    int main(){
        int x,y,z;
        unsigned int u;
        x=1;
        y=2;
        u=3;
        z=x+y+u;
        printf("z=%d", z)
        return 0;
    }

10.整型溢出表达    

c语言中整形数据的溢出,结果会发生反转,正负值变换,在py中会出现溢出吗?
    a: 0111 1111 1111 1111 1111 1111 1111 1111 (共32位)
    b: 1000 0000 0000 0000 0000 0000 0000 0000 (共32位)
     以下参考学习:
    https://blog.csdn.net/jx2091163852/article/details/126257326
    https://wenku.baidu.com/view/31c724ea9a8fcc22bcd126fff705cc1755275fb4.html

11.字符数组表达

c语言中的字符数组的赋值可以表示字符串,py中有字符数组形式吗?
    char a[20] = "hello" // 存在于栈上,存取效率快
        可以通过指针去访问和修改数组内容
    char str[] = {'b','i','t','\0'}; 
    字符数组表示字符串,需要追加'\0'作为截止符号

12.字符串表达

c语言中可以用指针表示字符串?py有指针吗?
    char *a = "abcd"; 
        //“abcd”存放于常量存储区,通常指针只可以访问字符串常量而不可以改变其值
        赋值时在编译时就确定了,(因为是常量)

13.常量表达形式

c语言的常量具有多种表示方法,py中有常量吗?如何表示?
    参考:https://blog.csdn.net/qq_58325487/article/details/120812764
    1.字面常量 2.34;  "abc"; 2000;  
    2.常变量:const int num = 29; 语法层面限制变量不能直接改变,num变量
        事实上C的const仅是语法上的限制
        以下参考:https://www.cnblogs.com/xiaoxie001/p/16123161.html
        用const来防止误操作
        
        struct student{string name; int age;int score};
        void printStudent(const student *stu){
            // stu->age = 100; 操作失败
        }
        int main()
        {
            student stu = {"zhan"}
        }

3.标识符常变量 #define  MAX 123; 标识符一般大写,可以预定义短函数,以及特殊字符处理
    4.枚举常变量 enum Sex {MALE,FEMAIL,SECRET}

c为什么已经存在#define 宏定义,还要const做常量限制?
    参考:https://www.bbsmax.com/A/kjdwQZLwJN/
    通常使用define定义一个宏,如#define PI 3.1415,以后无论在哪里需要使用圆周率时,我们直接使用PI即可,而在编译时预处理器会将所有的PI替换为,3.1415,这很方便,但是由于编译器不会对其进行检查,如果使用不慎就会引入错误,而且此种错误很难发现,而且,我们也无法得到PI的地址,不能向PI传递指针或引用为此,我们常使用const关键字修饰的宏变量来代替宏。使用const声明的变量虽然增加了分配空间,但是可以保证类型安全,并且可以得到指针。const消除了预处理器的值替代的不良影响,并且提供了良好的类型检查和安全型。

14.const关键字的限制和分级作用

理解了const关键字,对我们的编程有很大帮助。它可以做到添加限制防止出现对特定变量的修改
参考:https://blog.csdn.net/qq_43205256/article/details/123125530

c语言中的size_t strnchr(const char *str)可以用来限制指针形参,以及提升形参权限,py有这种类似机制吗?

Python:蟒蛇大战C语言(一)相关推荐

  1. python是一种蟒蛇使用的语言_python树莓派系列教程一:初识大蟒蛇 python(python语言环境搭建篇)...

    作者:剑若游龙微信公众号<科学是什么东东>,欢迎关注 作者微信号,欢迎与我交流 网络爬虫,人工智能,机器学习,如何让计算机理解能力更强,如 何让你手中的机器人更人性化,更聪明? 不管是大人 ...

  2. python叫什么语言-Python代码是什么语言

    Python代码是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言,最初是用来编写自动化脚本的,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Python代码是 ...

  3. python是什么语言-python底层是什么语言

    Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿萨姆特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承.之所以选中Pyth ...

  4. python飞机大战功能模块图_基于Python的飞机大战游戏设计

    第 2 3 卷 第 1 期 2019年 3 月 扬 州 职 业 大 学 学 报 Journal of Yangzhou Polytechnic College Vol .23 No . 1 Mar . ...

  5. C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.小甲鱼Python项目 – 飞机大战 2.本文使用的掩码图生成工具 自动生成遮罩图的程序,点击前往 3.EasyX官方链 ...

  6. python飞机大战源码素材包_小甲鱼python基础教程飞机大战源码及素材

    原博文 2018-12-22 23:32 − 百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取 ...

  7. python——基本图形绘制(实例2:Python蟒蛇绘制)(模块1:turtle库的使用)

    前言 本篇主要介绍Python基本图形绘制,以Python蟒蛇绘制为例,介绍turtle库的使用. 并在最后对蟒蛇绘制的代码进行分析. 读完本篇,你将了解: 1.方法论 Python语言及海龟绘图体系 ...

  8. 实例:Python蟒蛇绘制

    这个例子主要是用于理解Python的"模块编程思想". Python直接翻译是"蟒蛇"的意思,因此,利用Python绘制图形程序绘制一条蟒蛇十分有趣. 实例代码 ...

  9. python蟒蛇绘制----计算机绘图

    用程序绘制一条蟒蛇 问题1:计算机绘图是什么原理? 一段程序为何能够产生窗体?为何能再窗体上绘制图形? 问题2:python蟒蛇绘制从哪里开始呢? 如何绘制一条线?如何绘制一个弧形?如何绘制一个蟒蛇? ...

最新文章

  1. MAC版Eclipse的常用快捷键
  2. 软件体系结构设计文档_一个java架构师是如何设计出一个好的架构的
  3. HTML5笔记——formData
  4. (多线程)leetcode1195. 交替打印字符串 最简单解法一个变量搞定
  5. 从 Elasticsearch 来看分布式系统架构设计
  6. 【资料整理】scribe安装配置
  7. linux mutt 使用指南,linux mutt详解
  8. parallelstudio license 位置_UAV位置测量仪器Apogee-D Dual GPS INS
  9. 记录神通数据库2022安装
  10. 西门子estop指令_西门子6RA80直流调速器调试步骤和参数设置
  11. 《计算机系统与网络安全技术》一页纸开卷/期末复习内容
  12. 未明学院:学员来稿 | 2019年中国电影分析报告
  13. 如何将两列数据转为一列数据
  14. 手机端兼容iPhoneX刘海屏
  15. 计算机文秘所学的专业知识,18文秘02李荧 随着现代科学技术的发展,计算机已经...
  16. python实现图书管理系统(简单版)
  17. 专题分纲目录 MEM/MBA数学强化
  18. [搞笑]MM买裤子 超强的
  19. i219v微星 驱动_微星MPGZ390PROCARBON驱动程序官方版
  20. 你需要启用steam社区界面功能以进行购买_GTA5OL:名钻赌场豪劫新手如何购买与安装图文教程...

热门文章

  1. 什么是浮动,如何应用浮动
  2. 一个三十岁男人的婚姻思考-很感人的故事 (转载)
  3. VisualVM工具的使用
  4. java visualvm 内存_利用VisualVM 内存查看
  5. 图像偏导数(比较有用的知识);光流法(看了就懂的程序分析讲解)
  6. 如何在Linux上使用strings命令
  7. Android端App开发之刘海屏手机全屏设置实践
  8. var和let的用法及区别
  9. 微信公众号发文章编辑排版全指南
  10. [U3D+Vuforia+VR眼镜]分屏设置指南