目前位置: VCer资源中心 >>> VCer文章 >>> C++/MFC基础

[本帖已阅读1003次 分值80 回复0次] 张贴资源 发回信箱 控制面板

一点总结

提供者:oases2008 张贴时间:2005-01-01 00:00:00.0 出处:http://www.jblook.cn 作者:不祥

一点总结(2005-01-01 00:00:00.0)


oases2008


 
级别: VCer小兵
头衔: VCer会员

经验: 258
作品: 3
分会: 华北分会
注册: 2007-01-25 12:00:19.0
登录: 2007-10-30 16:38:36.0
1. 指针

在函数中调用malloc()分配的内存是放在数据区(堆中)而非堆栈区,所以当退出函数时,该内存依旧存在,只能通过free()释放它,而那些通过结构定义的的结构体(例如:struct msginfo buf),并且在函数体中做了初始化的,这个buf所代表的内存是放在堆栈中的,退出函数后就被释放了。

2. const 指针和指向 const的指针

(1) 指向 const的指针

例如: const int *x , 表示x是一个指针,它指向一个const int,这里不需要初始化,因为x可以指向任何东西,但它指向的东西不能被改变(也就是说x的内容不能变),int const * x与上面的定义是一样的

(2 ) const指针

例如: int d=1

int* const x=&d

这样就使该x指针变为了一个const指针,这个指针必须要有初始值,并且该指针在其寿命期间是不能改变的,但其所指向的内容可以改变,比如*x=3

3.指针和数组名的区别:

(1) 指针是个变量,它可以任意赋值,而数组名却不能赋值

(2) 对数组中内容的访问可以通过以下的方式进行:

int a[3]={4,5,6};

int I=0;

I=*(a+2)

而这样是错误的:

I=*(a++);

这是因为a++等价于a=a+1,前面说了数组名是不能赋值的a

本文转载自IT网it求职笔试真题库网

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1000000000368.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]
[投票结果]

A: 评分 10 0% (0 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)