7.30
来源:互联网 发布:天地知我心儿的小说 编辑:程序博客网 时间:2024/06/07 12:15
1.int *p1 = new int[10]; // 10个未初始化intint *p2 = new int[10](); // 10个值初始化为0的int解析: 在《C和指针》这本书里有介绍,int *p1=new int[10];该语句给指针p1分配内存,没有对指针初始化, int *p2=new int[10]();该语句给指针p2分配内存,并初始化指针2.分解质因数void prim(int m, int n) { if (m >= n) { while ( 1 ) n++; ( 2 ); prim(m, n); cout << n << endl; } }解析:分解质因数是将一个数差分成为几个质数相乘。n从2开始 第一处为m%n,代表取余。当余数是0的时候表示除尽,跳出while循环,即找出一个质因数。此时一个质因数即为n 然后 m/=n 即让m除去这个质因数,然后再进入求新m质因数的递归。 答案:m%n m/=n3.enum string{ x1, x2, x3=10, x4, x5, } x;函数外部访问x等于什么? 解析:如果是函数外定义那么是0 如果是函数内定义,那么是随机值,因为没有初始化 在全局域定义enum,输出x是0,但是在局部域定义enum,输出x是随机数答案:04.unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000;请问:p1+5= 什么?p2+5= 什么?解析: 指针+n = 指针 + n*sizeof(类型);p1+5=p1+5*sizeof(unsigned char)=p1+5*1=0x801000+ 5=转换成16进制=0x801005 p2+5=p2+5*sizeof(unsigned long)=p1+5*4=0x810000+20=转换成16进制=0x810014 5.设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为? C c;void main(){ A*pa=new A(); B b; static D d; delete pa;}答:对类A, 是建立在堆上的对象指针pa, 手动释放 对类B, 是建立在栈上的对象b,main函数结束就释放 对类C ,在静态存储区创建了一个对象c ,程序结束时候释放 对类D,也是在静态存储区建立对象d,但是局部变量,程序结束时候释放. 析构函数调用顺序: 先调用A的析构,因为delete pa . A 再释放栈上的对象b, B 关键看CD的顺序. c是全局对象,对它的初始化是在main函数之前,所以析构时候要放在最后. 也就是先析构d ,然后再析构c
阅读全文
0 0
- 7.30
- 7.30
- 7.30
- 7.30
- 7.30-7.31
- 7.30 累才剛剛開始...
- 7.30日志
- 7.30小记
- leetcode-7.30
- everyday sentence 7.30
- 第一次工作心得7.30
- 7.30 网页计算器功能设计
- 7.7--7.30总结
- 7.30java学习笔记
- 7.30学习总结
- 工作周报7.25-7.30
- 7.30代码日记
- 7.30学习总结
- Mysql数据库中数据类型的长度是什么
- 红黑树插入
- 剑指Offer——反转链表
- 文件操作命令
- ASP.net解决CSS与JS的缓存问题
- 7.30
- Ubuntu下的完整OpenCV开发环境搭建
- 如何用hover实现下拉菜单
- Halloween treats
- 文章标题 coderforces 514D : R2D2 and Droid Army (二分+RMQ预处理)
- Java 四种线程池
- linux的内核模块机制
- Centos6.8下搭建LAMP(Linux、Apache、MySQL、PHP)环境
- 有向图的十字链表存储方法