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”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常 ...
随机推荐
- Python安装第三库超时的解决方法
Python安装第三库超时的解决方法 1. 在很多时候使用python的时候需要使用到某些第三方库,比较常规的方法是使用cmd命令使用在线安装的方法(前提是在安装好了python相应版本时候配置好了相 ...
- Wordpress后台网址安全
wordpress 固定的后台地址是 网站/wp-admin/ 如果对方知道你是wp建站,然后很自然的就能知道你后台登录地址.然而你密码简单的话,很容易被黑. 所以为了安全考虑,我们需要把这个默认地址 ...
- USB从机主动断开连接
目录 在一些情况下,需要USB口的引脚复用成其他功能,比如说PB10.PB11要复用成定时器输出引脚:或者需要USB从机主动断开,类似某些杀毒软件带的"安全弹出",不过杀毒软件操作 ...
- Kubernetes 1.26.0 集群部署Prometheus监控
前言 该存储库收集 Kubernetes 清单.Grafana仪表板和Prometheus 规则,结合文档和脚本,使用Prometheus Operator提供易于操作的端到端 Kubernetes ...
- Angular单页应用程式 (SPA)+Azure AD重新导向登入
一.app.module.ts中设定应用程式 1.将MSAL Angular相关设置封装为auth.module.ts import { NgModule } from '@angular/core' ...
- Windows下安装和使用Masscan
http://zone.secevery.com/article/1098 0x00 前言Masscan号称最快的互联网端口扫描器,本文来探测一下Masscan在Windows下的安装和使用.mass ...
- Stream流常用API
文档 https://www.runoob.com/java/java8-streams.html JDK8 Stream API: https://docs.oracle.com/javase/8/ ...
- 利用shell脚本来监控linux系统的负载与CPU占用情况
一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具) 1.下载安装: http://downloads.sourceforge.net/msmtp/msmtp-1.4 ...
- 剑指 Offer II 树
我为什么要把代码粘在这里 断更很久了,基于一个错误的观念:我想看题,我到leetcode官网看不就行了吗? 但是若干年后我可能还会到我的博客园看看呀,我有可能上刷题网站吗?而且心得不好写到注释上. 记 ...
- linux express配置ssl证书,开启https访问
1.下载ssl证书的Nginx版本,在项目根目录新建https空文件夹,把crt文件和key文件复制到https文件夹中; 2.安装依赖:npm i fs http https 3.修改www文件的内 ...