易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++内存分配


#include <iostream>
using namespace std;
void main()
{
 char *p,*q;
 p = "abcde";
 q = p + 3;
 *q = 't';
 cout<<p<<endl;
 cout<<q<<endl;
}
两种语言编译都可以通过
当执行到
 *q = 't';
时,C++程序出现内存访问错误,C程序可以运行,并且把第四个内存单元置换为t
C++编译器在编译过程中,给"abcde"分配了常量区的内存单元,常量区的内存单元在运行时无法修改,因此试图对常量区的操作会产生异常。


相关文档:

C的五个存储类

存储类就是用于存储程序数据的内存的类型,由三个属性来表示:存储时间、作用域和链接。
存储时期描述的是变量占用内存的时间,有静态的、自动的和分配的三种
作用域是变量起到作用的范围,有代码块作用域和文件作用域两种
链接说明该变量可以被哪些地方引用,有空链接、内部链接和外部链接三种
下面是五种存储类的属性 ......

C/C++面试题


1.求下面函数的返回值(微软)
int func(x)
{
int countx = 0;
while(x)
{
countx
++;
x = x&(x-1);
}
return countx;
}
假定x = 9999。 答案:8
思路:将x转化为2进制,看含有的1的个数。
2. 什么是“引用”?申明和使用“引用”要注意哪些问题?
答:引用就是某个目标变量的&l ......

交换连个对象的值(C/C++?JAVA)

如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAV ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号