大家好,今天小编关注到一个比较有意思的话题,就是关于c语言存储结构的问题,于是小编就整理了2个相关介绍c语言存储结构的解答,让我们一起看看吧。
c语言中数组在内存占什么存储区?
在C语言中,数组在内存中占据的存储区是栈区。栈区是一种自动分配和释放内存的存储区域,用于存储局部变量和函数调用时的。数组在声明时会分配一块连续的内存空间,根据数组元素的类型和数量确定所占的字节数。数组的内存分配是在编译时确定的,数组的大小必须是一个常量表达式。数组的访问是通过索引来实现的,通过计算偏移量来访问数组元素。数组的生命周期与所在的作用域相对应,当作用域结束时,数组所占的内存会被自动释放。
整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。
因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。在执行函数printf("%s",c) 时,按数组名c找到首地址,然后逐个输出数组中各个字符直到遇到字符串终止标志39;\0'为止。
C语言中实参和形参分别存放在内存的什么位置?
无论是不是指针,形参实参都不是占用相同的空间。不是指针时,形参和实参的值是相等的;当是指针时,形参和实参都指向同一个地址(其实也就是*p(形参)和*q(实参)的值是相等的),但绝不是相同存储空间
到此,以上就是小编对于c语言存储结构的问题就介绍到这了,希望介绍关于c语言存储结构的2点解答对大家有用。