
C++ 习题(2021.05.05)
发布日期:2021-05-08 06:01:49
浏览次数:28
分类:精选文章
本文共 1056 字,大约阅读时间需要 3 分钟。
1. 指针空间初始化
下面指针p1, p2申请的空间是随机还是已经标准化?
int *p1 = new int[10];int *p2 = new int[10]();
答: p1 申请的空间是随机值, p2 申请的空间已初始化
对于内置类型而言:
new仅仅是分配内存,并不进行初始化,除非在后面显式地加上 ()
对于自定义类型而言:
只要一调用new,那么编译器不仅给他分配内存,还会调用它的默认构造函数初始化即使后面没有加(), 初始化是将内存空间填0
2. 函数外初始化
函数外部访问x等于什么?
enum string{ x1, x2, x3=10, x4, x5, } x;
答: 0
函数外定义是0,全局变量定义时编译器会为其初始化
函数内定义,是随机值,因为没有初始化
3. 指针运算
请问
p1+5=?
请问
p2+5=?
unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;
答:
0x801005
,0x810014
一个char占一个字节, 一个long占四个字节
对一个指针做加运算, 计算方式:
p_a + n * sizeof(type_p)
, 即所加之值要乘以类型所占字节
4. sizeof
下面程序的输出是?
void example(char acWelcome[]){ printf("%d",sizeof(acWelcome)); return;}void main(){ char acWelcome[]="Welcome to Huawei Test"; example(acWelcome); return;}
答:
4
对于字符数组
char arr[]="abcd"
,sizeof(arr)
代表的是字符数组所占的字节数目(包括结尾\0
), 但对于char arr[20]="a"
而言,sizeof(arr)
的值就是20, 对于strlen(arr)
而言,求得的长度是字符串的长度(以\0
作为结束符), 前面的例子中strlen
分别输出4和1对于字符指针
char *s="0123"
而言,sizeof(arr)
单纯代表字符指针本身所占的字符数目,即4个字节.strlen(arr)
对于字符指针仍然是求得字符串长度不变
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月09日 13时12分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java发送短信
2025-04-02
java发送邮件工具
2025-04-02
java取整和java四舍五入方法
2025-04-02
Java可变参数列表
2025-04-02
Java各中依赖包介绍
2025-04-02
Java合同管理(源码+mysql+文档)
2025-04-02
Java合同管理系统(源码+mysql+文档)
2025-04-02
Java合肥市公务员报名管理系统(源码+mysql+文档)
2025-04-02
Java合肥惠康养老平台app(源码+mysql+文档)
2025-04-02
Java后台处理ajax跨域请求处理
2025-04-02
Java后台测试技巧
2025-04-02
java后台生成截图-(DJNativeSwing版本)
2025-04-02
java后台通过http请求下载文件
2025-04-02
Java后端使用socketio,实现小程序答题pk功能
2025-04-02
Java后端开发书架
2025-04-02
Java后端开发:推荐常用的13款开发工具(非常详细)零基础入门到精通,收藏这一篇就够了
2025-04-02
JAVA后端知识点长啥样?
2025-04-02
Java后端:html转pdf实战笔记
2025-04-02
Java和JavaScript区别与联系
2025-04-02