int c=8;和int? c=8;有啥区别,作用是?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int c=8;和int? c=8;有啥区别,作用是?相关的知识,希望对你有一定的参考价值。

int c=8;和int? c=8;有什么区别,问号作用是?

是可空类型!

可空类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。例如,Nullable<Int32>,读作“可空的 Int32”,可以被赋值为 -2147483648 到 2147483647 之间的任意值,也可以被赋值为 null 值。Nullable<bool> 可以被赋值为 true 或 false,或 null。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

可空类型概述
可空类型具有以下特性:

可空类型表示可被赋值为 null 值的值类型变量。无法创建基于引用类型的可空类型。(引用类型已支持 null 值。)。

语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。这两种形式可以互换。

为可空类型赋值与为一般值类型赋值的方法相同,如 int? x = 10; 或 double? d = 4.108;。

如果基础类型的值为 null,请使用 System.Nullable.GetValueOrDefault 属性返回该基础类型所赋的值或默认值,例如 int j = x.GetValueOrDefault();

请使用 HasValue 和 Value 只读属性测试是否为空和检索值,例如 if(x.HasValue) j = x.Value;

如果此变量包含值,则 HasValue 属性返回 True;或者,如果此变量的值为空,则返回 False。

如果已赋值,则 Value 属性返回该值,否则将引发 System.InvalidOperationException。

可空类型变量的默认值将 HasValue 设置为 false。未定义 Value。

使用 ?? 运算符分配默认值,当前值为空的可空类型被赋值给非空类型时将应用该默认值,如 int? x = null; int y = x ?? -1;。

不允许使用嵌套的可空类型。将不编译下面一行:Nullable<Nullable<int>> n;
参考技术A 只有int c = 8;有意义,int? c=8;语法错误,没有这种写法。 参考技术B 不可能是?
原程序是什么?
可能错了。
参考技术C 没见过这种写法

C语言中int和float有啥区别啊

一、指代不同

1、int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。

2、float:于存储单精度浮点数或双精度浮点数。

二、数据范围不同

1、int:int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。

2、float:loat 类型提供了一个在 -3.4E+38 ~ 3.4E+38 之间的范围。


三、特点不同

1、int:除了int类型之外,还有short、long、long long类型可以表示整数。

2、float:可以提升为更大基数的类型(从 float 类型到 double 类型)。对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。


参考资料来源:百度百科-INT

参考资料来源:百度百科-FLOAT

参考技术A

主要有如下三个区别:

1、表示的数据范围不同。C语言中的int变量通常的表示范围为-2147483648~2147483647,也就是-2^31到2^31之间。而-3.4E+38 ~ 3.4E+38则是float类型表示的数据范围。float表示的数据范围要大于int表示的数据范围。

2、变量赋值方法不同。C语言中,将i设定为一个int变量并赋值的方法为:int i=xx;,其中xx为一个整数,例如3、4、5,不可以是小数。将i设定为一个float变量的方法为:float i=yy;,其中yy为一个浮点型数,可以带上小数点,例如3.0、4.5、5.7等等。

3、字节构成不同。int和float类型在计算机中都占4个字节,但是float类型的4个字节构成为包括一个符号位、一个8位二进制指数和一个23位尾数,而int类型的4个字节构成全部为整数。

参考资料来源:百度百科 - INT

参考资料来源:百度百科 - FLOAT

参考技术B int是整型。float是单精度浮点型。
int只能表示整数,在windows32和64中占4个字节。
folat也就是有小数部分的,如:3.234。小数有效位是7个。也占4个字节。本回答被提问者和网友采纳
参考技术C

    int和float首先明白其本质是数据类型,何为数据类型,其实其名字就告诉我们,像我们学习时喜欢把整数和小数分开一样,这里的int是整数类型,float是浮点数(小数类型)。这不就是俩种数据类型

    那么为什么要区分那,主要原因是计算机在存储数据时分配的内存空间是不同的,你定义了int(整型)它就分配对应整型的大小,比如4个内存单元。

    那么我为什么要说比如是4个内存单元那,原因是不同的cpu分配内存是不一样的,32位cpu分配的int就是4个字节,至于为什么如此,这是硬件设计时决定的(32位/8=4字节)(不理解跳过)

    综上所述,你应该明白你定义的每一个变量都会分配一块内存,并且分配内存的大小是取决于你的数据类型的。

参考技术D int是整型,不存在小数部分;而float是实型(单精度浮点型),是有小数部分的。不过数据长度都是32位

以上是关于int c=8;和int? c=8;有啥区别,作用是?的主要内容,如果未能解决你的问题,请参考以下文章

c语言里const int 和int 有啥区别,const的作用是啥。

在C语言中float 与int 有啥不同

c语言的基本整型(int)和短整型(short)又啥不一样?这些有啥用?

C中的“short int”和“int”有啥区别?

int32,int,int32_t,int8和int8_t之间的区别

c:=make(chan int) 和 c:=make(chan int,1) 有啥区别?