C语言和Python的短路计算,python和C语言的坑

python的坑

1、pythond的负数存在变量里面时,直接读取该变量并不是补码的形式,需要将其与0xffffffff与操作,才能显示补码

如: n= n& 0xffffffff

2、python 里面没有null,只有None

3、跨平台性和可移植性是不一样的。跨平台是指几乎不用修改就可以在不同的操作系统和硬件上运行,不依赖于操作系统和硬件。可移植性是指经过修改之后可以在其他的平台上运行。

4、string类型的数据是不可修改的,只能索引。要修改的话需要用list()函数转换为list类型。将list转换成string没有库函数,方法如下:

a=’’

for i in range(alist):

a= a+i

5、A == cht(65), 97 = = ord (‘A’)

6、<= , >=,之间不能有空格,否则报错,等于号也是

7、输出两个数的最大值

a,b = (x,y) if (x>y) else (y,x)

8、【题目】输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组,输出a+b的结果。

c020e262ab0466157003097b27fe8089.png

如果没有(0 ,0)结尾或者别的特殊字符作为结尾的话,用C/C++是没办法做的,这能使用python

c281708db48e24fd05e21c80e80b01bf.png

9、【大数除法】

python的大数乘法是一点问题都没有的,但是大数除法有坑。大数除法用‘/’还是 '//'区别是很大的。

a = pow(100,10)-1

print(a) ##结果是99999999999999999999

b=a/99

print(b) ##结果是1.01010101010101e+18,用科学计数法表示大数,有误差

c=a//99

print(c) ##结果是1010101010101010101,用整数表示大数,没有误差

C/C++的坑

1、memset(array,0,length);这个函数是按字节进行操作的,一不留神就会出错。

如有int array[10];

len = strlen(array);

memset(array , 0,len );

是不正确的,因为这里只初始化了len个字节而不是len个int。正确应为

memset(array , 0,len*sizeof(int))

2、0和NULL虽然逻辑上不一样,但是输出是一样的。下面两行代码的输出都是0

coutc)?1?0)

双引号括起来的字符串存在,静态区(全局 char a =“abc”),堆栈区(子函数中的int i=“abc”;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值