C语言中定义变量的数据类型(比如:int,char)有什么区别??

2024-11-28 21:51:03
推荐回答(5个)
回答1:

1: 一个 int 型变量占用两个字节内存,也就是16bit;
一个 char 型变量占用一个字节内存,也就是8bit;
如果的声明变量时没有在“int”或“char”前加存储类型说明符,则编译器就会将变量默认为auto变量,这种变量会被放在运行内存里,至于怎么放这就是C编译器决定的,而且各个公司出的C编译器的处理规则是会有一些不一样的。
2:
变量类型不同对源程序文件大小没什么影响,但会对程序运行有影响;如果在8位单片机上,则int类型的数据处理速度会慢很多;如果你要存入的数会大于255,则使用 char 型就会发生溢出,使程序运行发生错误;

具体用哪一种,主要还是看你要存入的什么类型的数据。

回答2:

程序运行时,内存分为堆区、栈区、静态区、文字常量区和代码区。

  1. 如果是局部变量,比如在main函数或其他函数内定义的int之类,是分配在栈区的。每调用一个函数,系统会在栈区当前栈顶自动分配一块内存,这块内存的大小和你这个函数里的局部变量有关,而且有大小限制,所以不可能在main里定义一个int a[1000000];的。定义在一起的局部变量,其内存也是相邻的。

  2. 如果是程序员malloc得到的内存,是来自堆区的。这里的内存分配是个很复杂的算法,重点是迅速找到一个大小合适的空闲内存,而且不产生过多碎片。这种分配的内存基本上是随机的。

  3. 定义的变量类型不同,对代码和EXE的大小没多大影响,只和运行EXE时占用的内存大小有关。

回答3:

1.首先你要多看看内存管理方面的内容。 内存是由系统管理的,int和char,如果是常量那么他们会被分配到常量区,如果是静态变量,会被分到静态变量区,局部变量,又不一样。不同的定义,内存地址肯定是不同的,这个系统自己管理。
2.没影响。但对运行时所占空间就就有影响。源程序文件大小只是代码量的大小

回答4:

看C语言的 编程手册
char 是8位
int 是32位
……
……

~
~
~

回答5:

想看一下它是不是随机的,你就在vc里面自己动手测试一下呗。定义几个变量,然后调试代码,在调试里面看一下你定义的变量的地址,然后自己分析一下