C语言 上学期(4) goto void* 群号860099671
QQ1812669090 非诚勿扰
这一节来讲 goto void extern sizeof 这几个关键字
高手潜规则: 禁用 goto
项目经验:程序的质量与 goto出现的次数成返比
最后的判决: 将goto打入冷宫
goto 副作用分析:
下面通过一个列子来说明goto的坏处
破坏结构化程序设计里面顺序执行的这个规则
void关键字
作用:主要是用来修饰函数的返回值和参数
void在c语言当中没有内存 void表示空
c语言中没有 void不允许定义变量
void可以说是c语言的灰色地带
c语言的指针不能 在不同类型间相互赋值
void* 它作为左值的时候 它可以接受任意类型的指针,但是当 void* 出现在赋值符号的右边的时候
我们必须对它进行强制类型转化,才能够将它赋值给其他类型的指针,否则就会编译出错,
如果没有进行强制类型转换但是编译通过了,说明还是编译器做的不够严格,但是我们在编程时
最好要符合C语言的规范,这样我们写的代码才能够有很好的移植性
下面 通过 void* 指针来实现 memset函数
第一个参数是函数的内存地址 第二个参数是要填入这段内存里的值 第三个参数表示内存大小
然后通过一个for语句实现内存的设置
最后我们将设置完的内存地址作为返回值返回 代码如下:
该代码的功能 将数组a的前5个字节全部清空为0
函数分析: 为什么我们第一个参数为什么要用void*呢?
因为我们要让函数接收任意的内存地址值。
持续更新中-----