c语言学习---void 数据类型

这样的语法是错误的: void a = 10; void表示无类型, 这样定义一个变量a, 编译器是无法知道给a分配多大的内存空间的
#include<stdio.h>
#include<stdlib.h> // 1. void 限定函数的返回值, void 函数没有返回值 void function1()//表示这个函数是没有返回值的
{
printf("hello world");
} int main()
{
function1();
return 0;
}
hello world
#include<stdio.h>
#include<stdlib.h> //可以不定义函数的类型 function1()
{
return 10;
} int main()
{
int a;
a = function1();
printf("%d",a); return 0;
} 10
#include<stdio.h>
#include<stdlib.h> //定义了void, 无返回值, 但是最后还是有return ,这样调用函数function1()的时候虽然不会报错, 但是不建议这样使用 void function1()
{
return 10;
} int main()
{
function1(); return 0;
}
2. 限定函数的传参列表
#include<stdio.h>
#include<stdlib.h> int function1()
{
return 10;
} void function2()
{
printf("%d, ",function1());
} int main()
{
function2();
return 0;
} 10 #include<stdio.h>
#include<stdlib.h> int function1()
{
return 10;
} void function2()
{
printf("%d, ",function1(110));//function1()函数没有传参, 但是这里传参, 但是不会报错, 输出的还是10
} int main()
{
function2();
return 0;
} 10 #include<stdio.h>
#include<stdlib.h> int function1(void) //在这里加上一个void, 表示没有传参
{
return 10;
} void function2()
{
printf("%d, ",function1(110));//function1()加上void 变成function1(void), 这个时候再这样调用function1(void)就会报错, 因为void已经表示无传参了
} int main()
{
function2();
return 0;
}
3. void * 万能指针, 可以不需要强制类型转换就可以给等号左边赋值
比喻说
int* pInt = NULL;
char* pChar = NULL;
// 将pChar复制给pInt
pInt = pChar //这样会报错, 因为指针类型不一样
pInt = (int*)pChar //使用(int*) 进行强制类型转换
//但是可以定义一个万能指针
void* pVoid = NULL;
pChar = pVoid //万能指针, 可以不需要强制类型转换就可以给等号左边赋值
#include<stdio.h>
#include<stdlib.h> int main()
{
int* pInt = NULL;
char* pChar = NULL;
void* pVoid = NULL; pChar = (char*) pInt;
pChar = pVoid; printf("%p", pChar);
return 0;
}
c语言学习---void 数据类型的更多相关文章
- Go语言学习之数据类型
### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...
- python语言学习7——数据类型和变量
整数 python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样 计算机由于使用二进制,有时候采用十六进制表示整数比较方便,十六进制数用0x前缀 浮点数 简单的小数就直接用小 ...
- GO语言学习——基本数据类型——整型、浮点型、复数、布尔值、fmt占位符
基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8.int16.int32.int64 对应的无符号整型:uint8.uint16.uint32.uint64 其中,uint8就是我们熟 ...
- GO语言学习——基本数据类型字符串
字符串 Go语言中的字符串以原生数据类型出现. Go 语言里的字符串的内部实现使用UTF-8编码. 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符 GO语 ...
- C语言学习关于数据类型的一些知识点(初学者)
1.整型常量的的前缀:(1)十进制常数无前缀. (2)八进制常数前缀为0,八进制常数无符号. (3)十六进制常数前缀为0X或0x. 注:在程序中是根据前缀来区分各种进制数的.因此在书写常数时不要把前缀 ...
- Go语言学习之数据类型以及类型转换(The way to go)
生命不止,继续go go go 介绍来go中的变量和常量,今天介绍一下go中的基本类型. 可以分为四大类,现在一点点道来. Boolean Types 布尔类型,不用过多介绍来吧,就是true和fal ...
- 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书
<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...
- 12天学好C语言——记录我的C语言学习之路(Day 8)
12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...
- 12天学好C语言——记录我的C语言学习之路(Day 3)
12天学好C语言--记录我的C语言学习之路 Day 3: 不知不觉到了第三天的学习,我们前两天学习的东西很杂乱,各个方面都有学习.我觉得这不是不系统,也不是学的不扎实,这种学习对于初学者而言我认为是很 ...
- 郝斌老师C语言学习笔记(一)
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常 ...
随机推荐
- springmvc 能进入Controller,但是前端页面还是404
问题现象: 1.Controller里面的方法上已经加了注解 @ResponseBody 2.能进入controller的方法里面: 3.前端返回状态码 404: 4.控制台没有异常信息: 问题原因: ...
- Git版本管理工具详细教程
一 Git初始化 下载安装, 下载地址: https://git-scm.com/downloads 每个系统的都有(linux.mac.windows等),看官网的安装教程,很详细,此处我以wind ...
- day01-java流程
Scanner对象 基本语法: Scanner s = new Scanner(System.in); next()方法 nextLine()方法 顺序结构 选择结构 if单选结构 语法: if(布尔 ...
- Java异常之Error和Exception
异常Exception 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数 ...
- 探索如何在java中执行python脚本
一个偶然的场景,笔者需要在java代码中执行某个python脚本,并且需要向脚本中传递参数,有可能的话,还要获取该脚本的某些执行结果,回到主程序中继续执行下去. 没有思路之前,狭隘的想法是,java中 ...
- 搭PHP本地环境-windows
项目中要用php开发,但是本地没环境调试不方便,所以搭一下本期环境. 1.下载php phpstudy工具官网:https://www.xp.cn/.phpstudy和WAMP工具的不同之处在于,ph ...
- JAVA图片压缩到指定大小
这是压缩到小于300KB的,循环压缩,一次不行再压一次, 不废话,直接贴代码 <!-- 图片缩略图 --> <dependency> <groupId>net.co ...
- PhpSpreadsheet导出科学记数转成字符串
$logistic_code."\t" 加上\t即可转成字符串
- 浅析sleep()方法与wait()方法
为什么 wait() 方法不定义在 Thread 中? wait() 是让获得对象锁的线程实现等待,会自动释放当前线程占有的对象锁.每个对象(Object)都拥有对象锁,既然要释放当前线程占有的对 ...
- defineProperty和Proxy
Proxy JS标准内置对象 const p = new Proxy(target, handler) 创建一个对象的代理: let obj = { a: { b: { c: 1 } } } let ...