为了账号安全,请及时绑定邮箱和手机立即绑定

请问在python数组要先定义长度吗?

请问在python数组要先定义长度吗?

30秒到达战场 2019-09-13 15:10:03
python数组要先定义长度吗
查看完整描述

4 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

这个是根据实际情况来决定的,如果你的数组是追加一个元素的可以不用定义长度,如果你初始化一个列表然后要修改其中的值的话,就要定义长度了。 


查看完整回答
反对 回复 2019-09-17
?
www说

TA贡献1775条经验 获得超8个赞

视情况而定

如果你的数组是追加一个元素的可以不用定义长度

如果你初始化一个列表然后要修改其中的值的话,就要定义长度了。

举个例子吧

a = []
for i in range(10):
a.append(i)
print a

b = [0 for i in range(10)] #也可以b = [0]*10
for i in range(10):
b[i]=i
print b


查看完整回答
反对 回复 2019-09-17
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

(1)没有分清字符串和字符数组的区别: char* a="abcde";定义的是个字符串,它是一个占用了6个字节的字符串,其中前面5个保存:abcde,最后一个是\0(编译器自动加的);char str1[80]="This is a "定义了一个字符数组,可以保存80个字符,编译器不会加\0;你需要在后面手工加上; (2)没有分清函数定义和调用函数的区别: char *stract(str1,str2);这是定义了一个函数,这个函数的名称和系统的函数名称strcat刚好一样,不是调用函数;这个函数需要你自己去实现,你这里没有实现; stract(str1,str2)是调用函数strcat,编译器会按照你定义的头文件顺序去找; 由于你定义了str1和str2长度为80,因此后面的存储区均是0,因此,显示结果没有问题,如果你将str2长度定义为9个(你的后面字符串的长度,你就会发先第一个显示结果会降str1也打印出来,原因是你没有给str2加上\0;建议你注意这个问题,这就是臭名昭著的缓冲区溢出漏洞的来源之一。 你由于仅仅是定义了strcat函数,因此你的输出仍然是str1


查看完整回答
反对 回复 2019-09-17
  • 4 回答
  • 0 关注
  • 368 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信