做题笔记 2019/10/4

这篇博客记录了关于C++的一些编程题目,涉及64位系统下指针的大小、数组指针的赋值规则以及类成员函数和析构函数的性质。通过分析题目,讨论了指针类型的细节和C++的内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前天去通宵了,昨天休息一天调整一哈,嘻嘻嘻。

1.64位系统下,*p=NULL和*p=new char[100], sizeof(p)各为多少?

答:在64位下int为8个字节,指针也为8个字节。

2.

若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是()

1

2

3

4

1.p=s; 

2.p=k;

3.p=s[0]; 

4.k=s;

 

答:

p 是指向 char 的指针

k 是指向 char数组的指针,数组大小为3

s 是指向 char数组的指针,数组大小为10

 

k=s 错误是因为,k和s指向的数组大小不同。

k+1 地址移动3个 char的大小

s+1 地址移动10 个char的大小

 

如果将s 的定义改成 char s[3][3],那么 k=s 就正确了

或者将k 的定义改成 char (*k)[10],那么 k=s 也正确

所以124均错误。

3.

以下描述中,正确的是()。

A:预处理是指完成宏替换和文件包含中指定的文件的调用
B:预处理指令只能位于 C 源文件的开始
C:C源程序中凡是行首以#标识的控制行都是预处理指令
D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
A: 预处理可以包含1.宏定义指令;2.条件编译指令;3.头文件包含指令;4.编译程序可以识别的特殊符号;
B: 条件编译指令#ifdef,#ifndef这两组不一定要位于开始。
D: 预编译是对源文件部分内容(宏定义,条件指令,特殊符号)的替换.

4.在所有类说明中内部定义的成员函数都是内联函数

5.父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类对象指针会调用父类的析构函数

6.C++函数模板 实例化和具体化 请跳转https://blog.youkuaiyun.com/qq_30835655/article/details/76850894?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值