python中使用 C 类型的数组以及ctypes 的用法

本文介绍了Python使用ctypes库与C语言类型数据交互,包括c_int、c_double等类型,并展示了如何创建和操作C类型的数组,如倒序数组的实现,同时讨论了C类型数组与Python list的区别。
摘要由CSDN通过智能技术生成

Python 在 ctypes 中为我们提供了类似C语言的数据类型,

它的用途(我理解的)可能是:

(1) 与 其他语言(如 C、Delphi 等)写的动态连接库DLL 进行交换数据,因为 python 的 数据与 DLL难以进行数据交换。

(2) python 的字符串一旦形成,是不可变的,为了算法的需要,我们有时需要对字符串进行原位操作 ( in place ),而不想浪费另外的内存空间。

(3) python 具有很简明的语法,人们乐于使用。在解决实际问题时,字符串的处理占据了很大的开发量。

     互联网上有很多有用的算法可以帮助我们解决问题,如果我们能用python 写类似于 C 语言的程序,就不需要用其他语去写扩展了。

     有人会问,既然如此,用C语言,不就好了吗?

      当然可作这种选择,在用 python 的优势在于:既用使用了C语言的优点,也使用了Python的最大优点: 垃圾自动回收,代码简洁等。

    

一、 导入 C 类型 库

from ctypes import *

二、 常用的C 类型

(1) c_int   、 c_long 、c_int32

      C 类型的long int ,这两个类型完全相同。

       python 用 int 与之相应 , 但c_int的取值范围是 32 bit 的整数 。

      占用 4 字节内存

   (2) c_int64

      64 bit 整数,占用 8 字节内存    , python 用 int 与之相应

   (2) c_double 、c_float

      C 类型的 double , 这两个名字( c_double 、c_float 完全相同 )

      占用 8 字节内存   

       python 用 float 与之相应

(3) c_byte

      C 类型 的 byte ,   python 用 int 与之相应

      占用1字节内存

   (4) c_char

       C 的 8 bit 字符型   

(5) c_wchar

      C 的 unicode 字符

【注】

ctypes模块

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值