11 常量区的内容不能被修改

下面叙述错误的是()

     char acX[]=”abc”;

         char acY[]={‘a’,’b’,’c’};

         char *szX=”abc”;

         char *szY=”abc”;

A、acX与acY的内容可以修改

B、szX与szY指向同一个地方

C、acX占用的内存空间比acY占用的大小

D、szX的内容修改后,szY的内容也会被更改

分析:

答案是D。acX , acY 是2个数组,属于变量,一般存在栈区,可以修改, szX , szY 是2个指针指向常量区,常量区的东西不能被修改,所以D是错误的

时间: 2024-11-07 20:13:01

11 常量区的内容不能被修改的相关文章

C语言的内存管理分析 栈区 代码区 堆区 静态区 常量区

系统为了管理内存 把内存划分了几个区域 1> 栈区 栈区之中的数据在栈区之中以栈的形式进行存储. 栈区的特点:数据是先进后出, 放在栈区里面存放的是局部变量.(例如定义在函数内部的变量) 栈区之中的数据(局部变量)的作用范围过了之后,系统就会回收自动管理栈区的内存(分配内存 , 回收内存),不需要开发人员来手动管理 2> 堆区 高效的使用内存 这里的内存可以由程序员自己手动管理 高效的使用内存  例如: 申请内存 释放内存.优化内存 ARC 申请内存的函数 malloc()  memary a

【转载】程序中的堆 栈 可读写数据区 常量区 代码区

一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵. 3.全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块

Linux C存取效率对照——堆、栈、常量区

本文主要探讨堆和栈在使用中的存取效率.利用宏汇编指令分析訪存情况来进行简单推断. 实验环境及使用工具:i686,32位Ubuntu Linux.gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3,gdb 首先,引用一道题的代码和"答案",这是"比較堆和栈存取效率"的.可是其实,他给的两种方式都用的栈,个人试出来的占用堆空间的情况,仅仅能是malloc()和new()等系统调用产生的. #include<stdio.h> ma

c语言—栈区,堆区,全局区,文字常量区,程序代码区 详解

转:http://www.cnblogs.com/xiaowenhui/p/4669684.html 一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap) - 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.3.全局区(静态区)(static)-,全局

内存管理:栈区,堆区,全局区,文字常量区,程序代码区

一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其 操作方式类似于数据结构中的栈. 2.堆区(heap) - 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵. 3.全局区(静态区)(static)-,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变

C++中栈区 堆区 常量区

原文地址:http://blog.csdn.net/xcyuzhen/article/details/4543264 C++中栈区 堆区 常量区(由一道面试题目而学习) 2009-04-28 21:01 #include<iostream.h> void main() { char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上. char* d="abc&qu

堆,栈内存分配 &amp;&amp; 常量区

1题: 针对以下代码, 1 2 3 4 const char str1[] = "abc"; const char str2[] = "abc"; const char *p1 = "abc"; const char *p2 = "abc"; 判断下列说法哪个是正确的() 正确答案: A   你的答案: F (错误) str1和str2地址不同,P1和P2地址相同 str1和str2地址相同,P1和P2地址相同 str1和st

代码读取InforPath内容并进行修改

刚接触InforPath,就要进行修改,实在搞不懂公司内部的逻辑啊.首先需要明白,他是xml结构的,了解xml的话对这个就好操作了. 但重要的一点是要记得声明命名空间,否则读起来是会报错的. ? 1 2 XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);  nsmgr.AddNamespace("my", "http://schemas.microsoft.com/office/infopat

单档——单头内容新增、修改后同步更新到其他相关数据表

范例(cxmt631),在车辆报到单单头内容新增.修改后,把相关内容也更新到派车单单头档去(有派车单号的车辆报到单): 1)在单头新增后: #add-point:單頭新增後 name="input.head.a_insert" select xmabucstus into l_xmabucstus from xmabuc_t where xmabucent = g_enterprise and xmabucdocno = g_xmabuc_m.xmabucdocno if not cl