C语言复习(第八课void分析)

void在函数中作为形参代表的是不接受任何参数,作为函数类型代表的是没有任何返回值。那修饰变量呢?

带着这个问题我们做以下实验

发现并不能用来修饰变量,但是创建一个指针是没有报错。那为什么不能修饰变量呢?

因为void在标准C中并没有规定它占据多少空间,所以无法创建变量在内存中。但是指针都是四个字节(32位机)或八个字节(64位机)。但是有些编译器给void大小了,例如GCC


但是它依旧不能用来创建变量。对于void能创建指针,我们能做何应用呢?

这就要弄清楚void指针的特性:

    一.void指针作为左边指针变量时可以接收任何指针

    二.void作为右边指针变量需要进行强制类型转换

因为这个特性我们能创建一个能接收任意类型数组并初始化的函数。


还有一个关于指针的知识点,在MemSet函数里for循环赋值的指针移动要移动我所定义的局部指针的类型大小,这里是char所以++,如果是int则要+4.

谢谢狄泰软件学院的唐老师的授课和学长的解答


阅读更多
个人分类: 自我复习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

C语言复习(第八课void分析)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭