程序设计和数据结构基础知识

本文深入探讨了程序设计中的基础概念,包括内存分区的堆和栈,以及全局存储区的详细说明。重点讲解了数组的定义、初始化、C风格字符串和二维数组的操作。此外,还阐述了指针的运算、指针数组和数组指针的区别,以及字符串、数组和指针的关系。最后,提到了串的模式匹配算法在查找子字符串中的应用。
摘要由CSDN通过智能技术生成

1、内存分区


  1. 由程序员手动分配和释放;若程序员不释放,程序结束时由系统释放。
    分配:malloc(C语言),new(C++)
    释放:free(C语言),delete(C++)
    分配方式类似数据结构中的链表。


  2. 由编译器自动分配和释放。
    存放函数的参数值、局部变量的值等。
    操作方式类似数据结构中的栈。

  3. 全局存储区(静态存储区)
    存放全局变量和静态变量。
    包括DATA段(全局初始化区)和BSS段(全局未初始化区)。其中,在程序执行之前BSS段自动清0。

  4. 文字常量区

  5. 程序代码区

数组

1、数组定义中的类型
数组定义中类型不能是引用,即没有引用数组,这是因为引用是不能赋值的,而数组中的元素必须可以被赋值。

虽然没有引用数组,但数组可以有引用。

2、数组的初始化
函数体内定义的内置类型数组,元素无初始化(若只初始化部分元素,其后的元素此时也会被初始化为0);
不是内置类型的话,就调用默认构造函数。

3、C风格字符串和字符数组
字符串必须要有Null结束,’\0’。遇到’\0’后字符串终止,所以不要有多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值