美文网首页
c语言基础知识点(1)

c语言基础知识点(1)

作者: 同学阅读 | 来源:发表于2020-11-14 16:49 被阅读0次

1.typedef的作用

1. 简化结构体创建变量 关键字struct

2. 区分数据类型 typedef char* PCHAR;

3. 提高移植性

typedef中声明的类型在变量名的位置出现



2. void 使用

    1. void 无类型,不可以通过void创建变量

    2. void 用途:限定函数返回值,函数参数

            1. 如果有返回值,则会报警告

            2. 如果调用函数时函数含参,但函数本身参数为void那么会报警

    3. void * 万能指针,用void定义的指针变量可以不用强转类型,可以直接转为任意类型;

    4. sizeof 4个字节


3. sizeof 使用

    1. 本质:不是函数,而是一个运算符

    2. 返回值类型:无符号整型 unsigned int

    3. 用途:统计数组占用内存大小

        1. 当数组名传入到函数中,被退化成指针,指针指向数组第一个元素的地址


4. 变量的修改方式

    1. 直接修改

    2. 间接修改

        1. 自定义数据类型修改,类如指针

        2. struct Person

        3. {char a  int b  char c  int d}


5. 内存四区 程序运行前

    1. 代码区

        1. 共享

        2. 只读

    2. 数据区

        1. 静态变量、全局变量、常量

        2. 已初始化 data

        3. 未初始化 bss


6. 内存四区 程序运行后

    1. 栈区

        1. 先进后出

        2. 编译器管理数据的开辟与释放

        3. 容量有限,不要将大量数据开辟到栈区

    2. 堆区

        1. 容量大于栈区

        2. 程序员手动开辟数据,手动释放数据

            1. malloc 开辟

            2. free 释放空间


7. 栈区注意事项

    1. 不要返回局部变量的地址,局部变量在函数执行完毕后会被释放,再次操作就是非法,结果是未知的


8. 堆区

    1.利用malloc将数据创建到堆区

    2.利用free将开辟的内存释放掉

    3.最后再将指针变成空,如果不为空那么p就是野指针

    4.堆区注意事项

        1.如果给主函数中 一个空指针分配内存,利用同级指针是分配失败的

        2.解决方式:利用高级指针修饰低级指针


9.静态变量和全局变量

    1.静态变量

        1.static

        2.运行前就分配内存

        3.生命周期在整个程序运行期间都是存活

        4.内部连接属性

    2.全局变量

        1.extern

        2.c语言下全局变量默认加extern

        3.外部连接属性


10.常量const修饰

    1.const修饰的全局常量

        1.直接修改 失败

        2.间接修改 失败 受到常量区保护

    2.const修饰的局部变量

        1.直接修改失败

        2.间接修改成功  是伪常量


11.字符串常量

    1.字符串常量在vs下是不能修改的,但在其他编辑器下不一定不能修改

    2.当编辑器中出现多个相同的字符串,那么在vs下会将他们看成同一个地址

相关文章

网友评论

      本文标题:c语言基础知识点(1)

      本文链接:https://www.haomeiwen.com/subject/ilbbbktx.html