数组问题,求大佬

冲tm的 2018-02-11 03:08:16
如题。。。
...全文
1373 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2018-02-22
  • 打赏
  • 举报
回复
第一个是初始化赋值,这样是可以的。 第二个,根据数组名不能做左值的规则,这样赋值是不可以的。注意这儿不是初始化,而是赋值。因为上一条语句char str[20];已经定义了str,并且数组内的数组是随机值。 第二条语句就是赋值,因此不可以。可以考虑使用strcpy/memcpy给str赋值
冲tm的 2018-02-22
  • 打赏
  • 举报
回复
引用 6 楼 自信男孩的回复:
第一个是初始化赋值,这样是可以的。 第二个,根据数组名不能做左值的规则,这样赋值是不可以的。注意这儿不是初始化,而是赋值。因为上一条语句char str[20];已经定义了str,并且数组内的数组是随机值。 第二条语句就是赋值,因此不可以。可以考虑使用strcpy/memcpy给str赋值
多谢!
冲tm的 2018-02-21
  • 打赏
  • 举报
回复
引用 1 楼 Vist_1的回复:
第一种是执行的初始化的过程,第二种则是执行的赋值的过程,数组的赋值要用memcpy,strcpy等函数,不能直接用等于号
谢谢大佬。。。。。。。
赵4老师 2018-02-11
  • 打赏
  • 举报
回复
“变量赋值”和“变量初始化”不是一回事! “变量赋值”发生在运行期,其写法遵循赋值语法规定。 “变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。
little__four 2018-02-11
  • 打赏
  • 举报
回复
第一种为:在内存堆上开辟20个字节的空间,并把后面的值填进去(赋值)。 第二种为:县开辟空间,然后后面的数值会先放在内存中的静态常量区,然后再将值赋过去。
赵4老师 2018-02-11
  • 打赏
  • 举报
回复
理解讨论之前请先学会如何观察! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程! 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! 不会单步Release版对应汇编?在你想单步Release版C/C++代码片断的前面临时加一句DebugBreak();重建所有,然后在IDE中运行。(一般人我不告诉他!) VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
Vist_1 2018-02-11
  • 打赏
  • 举报
回复
第一种是执行的初始化的过程,第二种则是执行的赋值的过程,数组的赋值要用memcpy,strcpy等函数,不能直接用等于号

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧