数组、指针、结构体的总结_吃鱼的小脸猫_新浪博客

一、结构体和数组的区别
1、定义一个结构体是为方便保存不同类型的数据,而不同类型的数据放在一个结构体中
2.定义数组也是为方便存储大量数据,但数据必须是同一类型
3、 结构体中也包括结构体数组和结构体指针,而结构体中的数组和指针与本身的数组和指针用法也相同,唯一不同就是结构体数组中保存的多种类型的数据
二、scanf和getchar的安全性
       一般不使用scanf和getchar,因为它们的安全性极差,在使用它们时,一般没有限制长度,而在源代码中数组一般是最忌讳不能越界,而这俩个函数却没有控制,所以一般容易产生越界,最终导致一系列问题,所以一般可用fegts()函数代替
三、typedef和宏的却别
      宏是定义一个常量并且不可修改,一般形式#define N 15,并且在宏中,最重要的就是直接替换,而在直接替换中一般需注意在替换时不加括号,除非本身就带有宏,这也是非常重要的考点;
     而typedef是将一个数据类型起一个别名,在定义本质上就有差别,并且修饰对象也不同,一个是常量,一个数据类型
四、浅拷贝和深拷贝
1、浅拷贝:是将多个指针指向同一段内存(字符串常量就是一个项目中不管定义多少次,但在内存中只有一份,所以不可修改)
2.深拷贝:是将多个指针指向自己的内存
        总结:俩者各有自己的优缺点:浅拷贝指向同一段内存节省了不少的内存空间,但在字符串拷贝中却不能用,因为拷贝时容易出现拷贝不了所有的字符串,只能拷贝除所指向的唯一一段内存,但深拷贝就可以解决这个问题,所以在不同的地方应该选择合适的拷贝方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值