goto副作用分析:不使用goto语句,会破坏程序结构化特征。
void修饰函数返回值和参数:
1)如果没有返回值,那么应该将其声明为void;
2)如果函数没有参数,应该声明其参数为void;
void修饰函数返回值和参数是为了表示“无”
程序分析:
#include<stdio.h>
f()
{
} //这个函数有返回值,因为不写参数,默认可以接受任意的参数。
//不写返回值,默认为int
int main()
{
int i = f(1, 2, 3);
return 0;
}
void的意义
不存在void变量。
C语言没有定义void究竟是多大内存的别名。
1)没有void的标尺;
2)无法在内存中裁剪出void对应的变量;
3)不能定义void类型变量,数组;
4)可以定义void*类型指针,因为任意指针不是4个就是8个,void可以卡出这个大小。
void指针的意义:
1)C语言只有相同类型的指针才可以相互赋值;
2)void*指针作为左值用于“接收”任意类型的指针;
3)void*指针作为右值使用时需要进行强制类型转换;
4)不同类型的地址值不能相互赋值
程序实现MenSet函数:(将一段内存(数组)的每个字节设置为一个数,eg:0)
小结:
1)void是一种抽象的数据类型;
2)void类型不能用于定义变量;
3)void类型用于声明函数无参数;
4)void类型用于声明函数无返回值;
5)可以定义void*类型的指针;
6)void*类型的指针可以接受任意类型的指针值;
7)现代软件工程中,禁用goto语句。