-
简单而深入地告诉你,你就会明白:
为什么有这么多所谓的 int、float、double、char、short 等? 我认为人们处理的事情基本上都在这个范围内,少一点是不够的,多一点是浪费空间。 如果要设置其他类型的变量,可以这样做。
C构造可以按类型在内存中实现(只是不是关键字),但是空间的大小是划分的,内存不知道是什么类型。
这就是编译的原理:静态变量、外部变量、寄存器变量和自动存储变量。
像我一样思考问题(我开始学习甚至包括为什么你必须寻找它前面的标志,为什么要使用这个符号? 原因和意义是什么? )
它在内存中分为 5 个区域。
全局静态区域:
就您谈论的静态变量而言,外部变量也是如此。
寄存器:简单来说,就是CPU中的“内存”,它有什么作用? 计算机处理从中读取的数据,并由内存中的数据进行处理。
但有时,例如,1 亿个周期用于读取 1 亿次,将此变量保留在 CPU 寄存器中可以节省每次读取的内存往返时间。 提高程序执行效率。
堆栈(动态区域):是调用函数时释放的自动变量:如结构图。
入口)被比作内存中的堆栈(动态区域)。
数据从入口存储到最内层,例如进入。
main()
inta=1,b=2;
f(a,b)
假设内存空间(堆栈)的 %1 用于输入内存
调用 f(a,b)。
f(intx,inty)int
z=3;z=x+y+z;
printf("%d",z);
调用函数返回到 %2 空间(其中包含 mian
f(空格))。
调用完成后,它只能在一端释放,在末端释放一端,因此 f() 首先出现在最外层。
调用完成后,将释放返回给 main() 函数(%1 堆栈空间)的字的 f() 中的变量 z。
如果定义静态
f() 中的 z 不是放在堆栈中,而是放在静态区域。
明白了? 了解数据结构和编译原则。 现在深入挖掘表明你喜欢动脑筋,很好!
-
要回答清楚,还是需要很长,最后可能和教材里的内容差不多,不同的变量类型占用的内存空间不同,用来表达不同范围的数据来适应不同的目的,比如你有一个变量从头到尾都是一个整数,值很小, 你使用整数变量,这样更节省内存,速度更快,如果你的值包含小数,并且精度很高,那么你需要选择一个精度合适的浮点变量。
-
你要把数据放在电脑内存里,数据不能浮动,不然你为什么要内存呢?
例如,如果你定义了一个整数变量 a,那么计算机会在内存中指定一个空格来放置 a 的值,然后我们可以通过变量 a 找到 a 的对应值,但 a 只能放......其他变量类型也是如此。
原始 = (x 3 - 1) -x 2 + x + 1) = (x - 1) (x 2 + x + 1) -x 2 + x + 1)。 >>>More