基本类型(int、double、flaot等)创建时不需要new那它的实现原理是?

基本类型(int、double、flaot等)创建时不需要new那它的实现原理是?书上是说它创建了个并非引用的自动变量,还是不理解!

1个回答

这个叫做值类型。值类型放在堆栈上(作为成员函数的时候放在堆上,但是类初始化的时候它们的空间就确定了)。所以不需要new
理论上,面向对象的编程语言中所有的东西都可以是对象,包括int double float等等,但是这样做因为简单类型频繁参与计算,如果当作一般的对象性能低,为此这些简单的类型必须作为编程语言的特例。
另一个特例是字符串,实际上,字符串也是一种数组,但是字符串特别特别常用,所以有必要单独专门为它设计和优化。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_23473123: 成员变量
接近 3 年之前 回复
qq_23473123
qq_23473123 值类型作为成员函数?基本类型变量的空间确定好像是在类连接的准备阶段,类初始化是赋具体值吧?基本类型的数据是放在堆栈中,但我不知道储存 位置的区别,怎么就体现在需不需要new上?是new专指非基本类型的分配空间和具体赋值吗?还是new指的是先分配空间再赋值,而基本类型是因为 在类连接准备阶段就分配了空间,所以不需要再new空间了。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
基本类型-数字(int和double)
<p>rn 《2019零基础区块链游戏实战《元素之战》系列》课程教学目的是使同学们通过对区块链游戏实战《元素之战》的学习,可以做到区块链游戏开发的入门到深入了解。rn</p>rn<p>rn 课程内容包括:课程概述;linux命令行;EOS环境安装;C++;HTML;CSS;JavaScript;React;Redux。rn</p>
double与flaot在杭电时的区别
计算球体积 Problem Description 根据输入的半径值,计算球的体积。   Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。   Output 输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。   Sample Input 1 1.5   Sample Output 4.189 14.137   题目是
封装类Double与基本类型double
Double类型是可以完整表达一个10进制的小数的。只不过不是书写的表达,而是逻辑的表达。是不是有点绕嘴?简而言之,Double类型在进行牵扯到小数的运算的时候一律采用模拟运算。并且Double类型内部封装的是一个字符串“String”类型或者一个科学计数法的整数。为什么?因为只要她敢封装基本小数类型,从封装的开始就已经有误差了,又怎么去做其他的计算呢?...
new int 创建动态内存
#include using namespace std; int main() { int* a = new int; int* b = new int(120); int * c = new int[120]{3,4}; int* d = new int(); cout cout cout } //结果 4 4 4 4 4 4 4 4 - 842
new int 与 new int()
[code=c]#include "stdafx.h"rn#includern#includernrnusing namespace::std;rnrnint _tmain(int argc, _TCHAR* argv[])rnrn int *p=new int;rn cout<<*p<
new int与 new int()
void main()rnrn int* a=new int;int *b=new int();int c;rn rn cout<<*a<<' '<<*b<<' '<
Double tt= new Double()
Double(double value) rnDouble(String s) rnrn这两个构造函数里都可以写些什么,请举例说明rn对于进制有要求么?比如说用10进制或16进制rn谢谢
double 和 int 转换 时的精度问题
double t = 3.9; int x = (int)(t + 0.5);// 当 t &amp;gt; 0.5时 可以避免转换成3 cout &amp;lt;&amp;lt; x; // 输出为: 4
【Java】基本类型之double(九)
特征 double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;浮点数的默认类型为double类型;double类型同样不能表示精确的值,如货币;默认值是 0.0d; 例子:double d1 = 123.4。 精度        double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”
new int()和new int[]的问题!
以前没有注意这个问题请高手指教一下!rn好象int 都是用new int()rnchar都是new char[]!rn请问他们的用法的差异以及通常什么时候用[]或()!
【Java】int、long等基本类型占用字节数
基本类型 所谓的占用字节数,就是申请内存的时候所占的空间大小 类型 字节数 最小值 最大值 boolean 未指定,至少1字节,仅定义为取字面值true或false - - byte 1 -128(-2^7) 127(2^7-1) short 2 -32768(-2^15) 32767(2^15 - 1) ...
new Double(double) 与 Double.valueof(double) 区别与联系
请问 new Double(double) 与 Double.valueof(double) 区别与联系? 谢谢高手指教
java 中基本类型之间的转换 String double long int
将String转化为Double、Long、Integer 一、java中字符串转换成Double类型     Double doubleType = Double.parseDouble(String) 二、java中字符串转换成Long类型 Long longtype = Long.parseLong(String) 三、java中字符串转换成Integer类型      In...
Activity创建时布局文件的实现原理
1.底层框架根据布局ID找到布局文件。 2.底层框架解析此布局文件(pull解析)。 3.底层框架通过反射构建布局文件中的元素对象。 4.底层框架会将元素对象(view)放到Activity中。 5.Activityk看不见,xml视图空白区域是布局文件(如线性布局,相对布局等)。Activity不是View,Activity是Context的子类。
基本类型int和long的大小
int类型数据所占内存空间为32位,取值范围为—232至231-1 long类型数据所占内存空间为64位,取值范围为—264至263-1
Integer和int基本类型的比较
先看几行代码 Integer a1 = 100; Integer a2 = 100; System.out.println("a1==a2:" + (a1 == a2)); Integer b1 = 200; Integer b2 = 200; System.out.println("b1==b2:" + (
【Java】基本类型之int(五)
int 数据类型是32位、有符号的以二进制补码表示的整数;最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);一般地整型变量默认为 int 类型;默认值是 0 ;
int *p=new int;和 int *p=new int();
int *p=new int; rnint *p=new int();rnrn这两者有什么区别? 都能编译通过 。。。
int *i =new int();
C++primer第四版151页说这样可以初始化为0rnrn是我理解错了吗?
int double等也是object吗?
各位,在JAVA中int 等基本类型不是object对象,在C#中int 是不是object?
new int(10)和 new int[10]
这两个都能分配连续的区域rn我想问一下,有什么不同??
String与int、long、float、double等相互转换
一、String转int示例代码:String str = "11"; /** * 1、把字符串按照指定的进制转换成Integer类型,第二个参数表示字符串的进制数(如:2、10、16等) */ int a = Integer.parseInt(str, 16); /** * 2、默认按照10进制进行转换,内部调用方法1实现:parseInt(str,10)。 */ int b = Inte
c++,字符串string和double,int 等转换
1.转到string类型 to_string 见官网文档介绍 http://www.cplusplus.com/reference/string/to_string/ 2.string转int,double,long long int 采用标准库中atoi函数,浮点型atof(),long型atol()等等 在引用的时候要像下面一样转换成标准的c的字符串,string是封装好的 s...
有关字符串与int,double等的转换。
我怎么感觉在vc里,各种类型数据的转换不大好做,在delphi里比较简单 inttostr, strtoint,doubletostr.........等等就可以把各种数据转换了。在vc里有类似的方法吗?
new int(10)和new int[10] 的区别?
new int(10)和new int[10] 的区别?
new int[] = new int[0]吗?
[code=C/C++]int main() rnint *a = new int[34]; rnint *b = new int[]; rna[0] = 1; rnb[0] = 1; //运行时错误,无分配的内存,b只起指针的作用,用来指向相应的数据rndelete[] a; delete[] brn[/code]rnrn请问 b到底被分配了多大的内存空间?
new int*[2]和new (int *)[2] 的区别???
一个2级指针的动态分配rnint **p;rnp=new int*[2];rnrn这里p=new int*[2]等价p=new(int *)[2]吗???rn我觉得应该等价rnrndouble *p;rnp=new double [2];rn把double换成 int *;rn不就是:rnint **prnp=new (int *)[2];吗???
C中数字字符串转double和int实现原理
C中,数字字符串以char[]形式定义。 C++中string转数字见这篇   ① 常用函数   #include&amp;lt;stdlib.h&amp;gt; atoi  --- 转int atod  --- 转double strtod --- 转double strtol  --- 转long   四兄弟的工作原理都可以用相似的语言描述: 函数会扫描参数 nptr字符串,跳过前面...
double类型转换int类型时精度丢失
问题如下:rn double x, y;rn DWORD a;rn x = 4.0;rn y = 0.01;rn a = x / y;rn执行完后a是399,我需要得到400。我需要怎样做?rn 各位大侠帮忙啊!很急,在线等
int *类型的malloc是不需要free的吗?
#include rn#include rnrnmain()rnrn int *g_link;rn int *buf;rn int i;rnrn g_link=(int *)malloc(10);rn buf=g_link;rn /* free(buf); 位置1 */rn for (i=0;i<=9;i++)rn rn *g_link=100000+i;rn g_link++;rn rnrn for (i=0;i<=9;i++)rn rn printf("%d ",*p+i);rn rnrn /* free(buf); 位置2 */rnrnrnrn在上面的程序中,如果在位置2进行free,则会报错。rn而在位置1进行free则不会出错,并且照常能在free后的地址中进行赋值。rn难道说int *类型的malloc是不需要free的吗?
int和double比较的时候是怎么比较的?
[code=Java]public class Example rn public static void main(String[] args) rn int i = 3;rn double j = 3.2;rn if(i < j) rn System.out.println(i + " "+ j);rn rn rn[/code]rnrn输出 3 3.2rnrn这说明之间没有转换吗?
为什么string不需要new?
C#中,定义一个类的对象需要new,比如:CLASS A = new CLASS;rn为什么string不需要new呢? string a = "abcd";
new操作符的实现原理
new操作符
javaScript中的new实现原理
1.创建一个新对象;[var o = new Object();] 2. 新对象prototype指向传入function的prototype 3.将构造函数的作用域赋给新对象(因此this指向了这个新对象);[Person.apply(o)]  [Person原来的this指向的是window] 4.执行构造函数中的代码(为这个新对象添加属性); 5.返回新对象。   funct...
new构造函数的实现原理
当我们说new一个对象的时候,实际做了些什么? 下面通过代码模拟一下 var newFunc = function ( func ){ //1.新建一个空对象,并将 构造函数的原型对象赋给这个空对象 var obj = Object.creat(func.prototype); //2.执行构造函数,相应参数被传入,并将this的上下文指向新创建的对象...
jvm:new时的对象的创建
new 一个对象的时候JVM都做了哪些事情: 1、 检查这个指令在常量池中能否定位到一个类的符号引用,并检查这个类是否已经被加载,未加载时,执行类加载,同时初始化类中静态的属性(赋默认值) 并执行静态代码块(静态代码块只会在类加载的时候执行一次) 2、分配内存空间,同时初始化非静态的属性(赋默认值):         为新生对象分配内存。[指针碰撞]/[空闲列表]分配方式。         ...
double int转换
double d=10.2;rn d-=int(d);rn d=d*100;rn cout<
double 转int
请问下这么把double转换int而不丢失精度
double转int
double s = 5.0; rn int s1 = (int)s; rn这个是可以的。rn为什么下面这个不可以呢?rn Double a=java.lang.Math.random()*20;rn int b=(int)a;rn在这里就会提示double不能转为int,为什么呢?
如何将double转换成int?
比如double数据: 2.370420e+2 ,-2.470420e-5,...如何转变成 int数据 2370420 ,rn-2470420,...呢? rn rn要求是不要过多的使用while 或if等过多占用时间的语句. rn rn谢谢
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符