首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )

文章目录 一、数据类型封装 二、作为 参数 或 返回值 代表无 三、void* 指针赋值与被赋值 四、void 类型变量不存在 一、数据类型封装 ---- 实现函数 的 底层函数开发者 , 不想将 底层的数据结构...暴露给 函数调用者 ; 如 : 定义一个函数 , int initEnv(void **handle) 该函数被 暴露给调用者 , 但是函数的 void **handle 参数类型是 void** ,...; 三、void* 指针赋值与被赋值 ---- C 语言中 , 对指针赋值时 , 只有 相同类型的指针 , 才能相互赋值 ; void* 作为 左值 可以 被赋值 任意类型的 指针 ; void* 作为...右值 赋值给其它类型的指针类型变量时 , 必须将 该指针强转为其它类型 ; 最常见的是使用 malloc() 函数申请内存时 , 其返回一个 void * 类型的指针 ; void *malloc(unsigned...int size); 如果分配内存完毕 , 将其赋值给一个其它类型指针时 , 需要强转 ; int *p = (int*) malloc(sizeof(int) * 10); 四、void 类型变量不存在

2.5K10

TypeScript-any和void类型

任何值赋予 "void" 类型时,通常用于强调函数的副作用而非返回值。使用 "any" 要小心,它减弱了类型检查,而 "void" 有助于明确函数的返回意图。...any 类型any 表示任意类型, 当我们不清楚某个值的具体类型的时候我们就可以使用 any一般用于定义一些通用性比较强的变量, 或者用于保存从其它框架中获取的不确定类型的值在 TS 中任何数据类型的值都可以赋值给...如上代码的含义为,定义了一个可以保存任意类型数据的变量void 类型void 与 any 正好相反, 表示没有任何类型, 一般用于函数返回值:function test(): void { console.log...("BNTang");}test();图片在 TS 中只有 null 和 undefined 可以赋值给 void 类型,但是在赋值的过程当中会报错,需要关闭严谨模式如下:图片注意点null 和 undefined...是所有类型的子类型, 所以我们可以将 null 和 undefined 赋值给任意类型然后在来看可以赋值 null 和 undefined:let value: void;value = null;value

31320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言】void * 指针类型及其使用

    然而,void * 指针不能直接进行解引用,因为编译器无法知道它所指向的数据类型大小。...例如,以下代码是无效的: void *ptr; int a = 10; ptr = &a; *ptr = 20; // 错误,不能直接解引用void *指针 编译器会报错,因为 void * 不知道它指向的是什么类型的数据...但是,void * 指针无法直接进行这种运算: void *ptr; int a = 10; ptr = &a; ptr++; // 错误,不能对 void * 指针进行加法运算 这是因为,void...例如: void *ptr = malloc(sizeof(int)); // 分配内存空间 *(int *)ptr = 42; // 将内存空间转换为 int * 类型,并赋值 此时,malloc...它可以指向任何类型的对象或数据,但其灵活性也伴随着一些限制。首先,void * 指针不能直接进行解引用和指针运算;其次,在使用 void * 时需要进行类型转换。

    12510

    类型声明与空安全(Void Safety)

    上一篇文章介绍了 Koltin 的声明类型语法,但我有意避开了 Kotlin 类型系统里最重要的部分:空安全(Void Safety/Null Safety)。...很简单,默认的类型声明不能为空,类型后面跟问号”?”则可以为空。...string5 = "123" // 编译器报错了 } 观察 string1,string2 我们可以得出: 当你像 Java 那样声明一个 String 对象的时候,他在之后的赋值也是不能被赋值为空的...典型场景是,在你初始化这个变量的时候,还暂时无法得到其值,就必须用可空类型的声明方法了。 观察 string4,string5 我们可以得出: 类型推断是完全根据初始化时的赋值来确定的。...他不会根据后面的赋值作为依据来推断这个变量的类型。所以我们需要像 string3 那样显式声明为 String?。至于 Nothing 类型我们暂且不管,实际也很少用到,后面再分析。 2.

    1K50

    (十三)给函数参数添加类型

    # 一、给函数参数添加类型 说明 在我们定义函数的时候参数的类型是无法推断的,因为函数只是一段将要执行的代码 对于参数的类型只有在将要调用的时候才会知道,如果对函数参数的值没有限定的时候,就可以传递任意类型的值...如果当某个函数执行的是数学运算的时候我们传入的是一个字符串,那么就会发生不可预期的错误 例 function add(a, b) { console.log(a + b) } // 函数的参数没有类型...,当我们传递其他类型的参数也是可的, 机会出现不可预期的错误 add('hellow', {name: '张三'}) # 使用 ts 对参数值进行限定 function add(a: number, b...price: number } function printProductTitle(p: Product) { console.log(p.title) } # 总结-写在最后 说明 参数的类型和之前学习的普通类型是一样的...,可以是任意类型的值,包括联合类型

    77630

    阿里强制 boolean 类型不能用 is 开头?

    背景 平时工作中大家经常使用到 boolean 以及 Boolean 类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?...boolean 类型 private boolean isHot; public boolean isHot() { return isHot; } 包装类型 private...其实 javaBeans 规范中对这些均有相应的规定,基本数据类型的属性,其 getter 和 setter 方法是getXXX()和setXXX,但是对于基本数据中布尔类型的数据,又有一套规定,其...工作中使用基本类型的数据好还是包装类好 咱们举个例子,一个计算盈利的系统,其盈利比例有正有负,若使用了基本类型 bouble 定义了数据,当 RPC 调用时,若出现了问题,本来应该返回错误的,但是由于使用了基本类型...其实阿里 java 开发手册中对于这个也有强制规定: 因此,这里建议大家 POJO 中使用包装数据类型,局部变量使用基本数据类型。

    69220

    阿里强制 boolean 类型不能用 is 开头?

    背景 平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?...2.boolean类型 private boolean isHot; public boolean isHot() { return isHot; } 3.包装类型...,无论是boolean还是Boolean都不准使用isXXX来命名 对于非boolean类型的参数,getter和setter方法命名的规范是以get和set开头 对于boolean类型的参数,setter...工作中使用基本类型的数据好还是包装类好 咱们举个例子,一个计算盈利的系统,其盈利比例有正有负,若使用了基本类型bouble定义了数据,当RPC调用时,若出现了问题,本来应该返回错误的,但是由于使用了基本类型...其实阿里java开发手册中对于这个也有强制规定: 因此,这里建议大家POJO中使用包装数据类型,局部变量使用基本数据类型。

    1.4K20

    再论c语言里面的void类型本质和NULL

    (2)所以得出结论:c语言中变量必须有确定的数据类型,如果一个变量没有确定的类型(就是所谓的无类型)会导致编译器无法给这个变量分配内存,也无法解析这个变量对应的内存,因此得出结论不可能有没有类型的变量。...3void类型的本质: (1)void类型的正确的含义是:不知道类型,不确定类型,还没确定类型。...(2)void的一个典型应用,想必大多数读者都看到过,就是malloc的返回值;我们知道malloc向系统堆管理器申请一段内存给当前程序使用,malloc返回的是一个指针,这个指针指向申请的那段内存。...所以我们在这个malloc函数之后可以给这段内存读写任意类型的数据。...主要是因为在大部分的CPU中,内存的0地址处都不是可以随便访问的(一般都是操作系统严密管控区域,所以应用程序不能随便访问)。所以野指针指向了这个区域可以保证野指针不会造成误伤。

    73330

    Python基础(1) 变量、赋值及数据类型

    Python基础(1) 这篇文章我们介绍一下Python的变量,赋值及其数据类型。...变量有一定的命名规则: 首字符为字母或下划线 其余可为字母,数字和下划线 名字是区分大小写的 名字不能是关键字或预定义标识符 下面我们来看一个,小例子: import random secret=...由此可以看出,给变量起个好名字可以提高代码的可读性,使代码变的更加简洁。...赋值 Python变量赋值时可以同时获取值与类型 Python 是动态的强类型语言 不需要显示声明,根据值确定类型 就像下面的例子一样,我们不需定义a与b的类型,Python自动获取变量的类型(type...手动转换 利用 int ()、 float()、complex()可以手动转换数据类型。 下面的例子中,就是利用float()将int类型转换成了float类型的数据。

    93630
    领券