首页 > 试题广场 >

以下哪个变量是分配在BSS段char s1[100];int

[单选题]
以下变量分配在BSS段的是()
char s1[100];
int s2 = 0;
static int s3 = 0;

int main() {
    char s4[100];
}
  • s1
  • s2
  • s3
  • s4
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。
发表于 2018-09-07 09:49:28 回复(4)
正确答案应该是abc
发表于 2020-10-04 13:23:19 回复(4)
bss: 未初始化全局变量
data:  已初始化全局变量
text: 代码段
heap: 堆
stack: 栈
发表于 2022-01-15 15:51:09 回复(0)
.bss:未初始化的静态数据(全局变量、静态局部变量、静态全局变量),程序退出的时候才释放;
.data:初始化的静态数据(全局变量、静态局部变量、静态全局变量),程序退出的时候才释放
栈stack:局部变量,函数退出时被释放,栈空间是从高地址往低地址延伸的。
堆heap:malloc、calloc、realloc,要不等到你调用free,要不等待程序退出才释放。
发表于 2022-06-04 12:07:13 回复(0)
未初始化及初始化为0的全局变量和静态变量存放在BSS段。ABC
发表于 2022-03-12 15:46:49 回复(0)
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值
发表于 2022-07-21 15:36:45 回复(0)
BSS段:通常是指用来存放程序中未初始化全局变量的一块内存区域;
数据段:通常是指用来存放程序中 已初始化  全局变量 的一块内存区域,static意味着在数据段中存放变量;
代码段:通常是指用来存放 程序执行代码 的一块内存区域;
堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了;
栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值

错的原因在于不知道BSS(blocked by started symbol)
发表于 2022-06-12 19:16:47 回复(0)
BSS段:通常是指用来存放程序中未初始化的全局变量的一块内存区域; 数据段:通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域,static意味着在数据段中存放变量; 代码段:通常是指用来存放 程序执行代码 的一块内存区域; 堆:存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减,这一块在程序运行前就已经确定了; 栈:栈又称堆栈, 存放程序的 局部变量 (不包括static声明的变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。
发表于 2021-11-15 09:55:03 回复(0)
CSAPP中7.4节可重定位目标文件中有说明.bss用来存放未初始化的全局和静态C变量,以及所有初始化为0的全局和静态变量,所以正确答案不是ABC吗?还是说有另外一种BSS?
发表于 2021-05-16 15:23:38 回复(0)
未初始化的静态局部和静态全局变量都存在BSS段。 已初始化的静态局部和静态全局变量都存在DATA段。
编辑于 2024-04-02 01:16:39 回复(0)
1. 首先明确BSS段的概念: - BSS段(Block Started by Symbol)通常用于存放程序中未初始化的全局变量和静态变量。 2. 分析各个选项: - 选项A: char s1[100]; 这是一个未初始化的全局数组,它会被分配在BSS段。 - 选项B: int s2 = 0; 这是一个初始化的全局变量,它通常会被分配在数据段(Data Segment),而不是BSS段。 - 选项C: static int s3 = 0; 虽然它是静态变量且初始化为0,但因为它被初始化了,所以它会被分配在数据段,而不是BSS段。 - 选项D: char s4[100]; 这是在 main 函数内部定义的局部数组,它会在栈上分配空间,而不是在BSS段。 答案是A。
发表于 2024-10-25 08:35:30 回复(0)
bss存放未初始化、以及初始化为0的全局变量和初始化为0的静态变量
发表于 2024-09-19 15:02:45 回复(0)
发表于 2024-09-08 16:23:30 回复(0)
BSS段存放未初始化/初始化全为0的全局/静态变量
发表于 2023-04-13 00:47:00 回复(0)
正确答案的确应该是 a b c
因为 .bss 段存储的是 未定义的 / 定义值为 0 的  全局、静态变量。
发表于 2022-08-08 21:40:45 回复(0)