void

void修饰函数返回值和参数

  • 如果函数没有返回值,那么应给将其声明为void
  • 如果函数没有参数,应该声明其参数为void

不存在void类型的变量

void指针的意义

  • C语言规定只有相同类型的指针可以相互赋值
  • void* 指针作为作为左值用于“接收”任意类型的指针
  • void* 指针作为右值使用时需要进行强制类型转换

例子:void *实现MemSet

#include <stdio.h>

void MemSet(void* src, int length, unsigned char n)
{
unsigned char* p = (unsigned char*)src; int i = 0; for(i=0; i<length; i++)
{
p[i] = n;
}
} int main()
{
int a[5];
int i = 0; MemSet(a, sizeof(a), 0); for(i=0; i<5; i++)
{
printf("%d\n", a[i]);
} return 0;
}

小结

  • void是一种抽象的数据类型
  • void类型不能用于定义变量
  • void类型用于声明函数无参数
  • void类型用于声明函数无返回值
  • 可以定义void类型的指针
  • void* 类型的指针可以接受任意类型的指针值

08void的更多相关文章

随机推荐

  1. Python-Day3知识点——深浅拷贝、函数基本定义、内置函数

    一.深浅拷贝 import copy #浅拷贝 n1={'k1':'wu','k2':123,'k3':['carl',852]} n2=n1 n3=copy.copy(n1) print(id(n1 ...

  2. 我的第一份供lua调用的c模块

    #include <stdio.h> #include <string> #include <direct.h> #include <windows.h> ...

  3. Gensim LDA主题模型实验

    本文利用gensim进行LDA主题模型实验,第一部分是基于前文的wiki语料,第二部分是基于Sogou新闻语料. 1. 基于wiki语料的LDA实验 上一文得到了wiki纯文本已分词语料 wiki.z ...

  4. eclipse控台不见

  5. 4.Rabbits and Recurrence Relations

    Problem A sequence is an ordered collection of objects (usually numbers), which are allowed to repea ...

  6. Oracle数据类型隐式转换小析

    测试使用环境:oracle 11g r1 平常写sql语句时,大大咧咧,不太注意和数字有关的数据类型,有时例如 where c1=111 和 where c1='111'这样混用,却不曾想这里面另有蹊 ...

  7. 周末发现一个BUG,时有时无,一出程序就崩溃,郁闷了好久,终于跟出来来了,记之,提醒自己今后一定规范编写,只要规范,绝对不会出问题

    -- :::] cell0 create -- :::] *** Assertion failure /UITableView.m: -- :::] [ Uncaught Exception ] Na ...

  8. JavaScript变量作用域

    全部变量拥有全局作用域,局部变量拥有局部作用域(这里注意函数的参数也是局部变量) 1.在函数体内,局部变量的优先级高于同名的全局变量. 我的理解就是当你同时定义了同名的局部变量和全局变量时,函数体内返 ...

  9. c# 函数

    1.输入三个数,求最大的数. 2.输入一个数,求1~n的和. 3.求n的阶乘. 4.输入一个小于等于100的数,判断是否是100,还是小于10,还是两位数.

  10. objdump 分析

    objdump -H 显示如下: 一般常用的是 objdump -x 显示文件头信息 objdump -d 反汇编代码段代码 objdump -D 反汇编所有代码 用法:objdump <选项& ...