3.20 C++学习总结

1.转义字符的考察
printf("%d",strlen("\t"\065\xff\n"));输出结果是5为什么?
结果是5没错:\t,",\065,\xff,\n共5个。
\t——水平制表符,ASCII码值9;
“——表示一个双引号,ASCII码值34;
\065——用八进制表示的ASCII码值53,是字符’5’;
\xff——用十六进制表示的ASCII码值255,是扩展ASCII码的最后一个符号,标准平台下无输出;
\n——表示一个回车换行符,ASCII码值10。
以上每个都只有一个字节,所以共5个字节。
2.strcat函数和strcpy函数
strcat函数:将两个char类型连接。
char d[20]=“GoldenGlobal”; char *s=“View”; strcat(d,s);
*结果放在d中
strcpy函数:原型声明:char strcpy(char dest, const char src);
头文件:#include <string.h> 和 #include <stdio.h>

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针
example:
#include"stdio.h”
#include"string.h"
#include"stdafx.h"
int main()
{
char p1[10] = “abcd”, *p2, str[10] = “xyz”;

p2 = “ABCD”;
strcpy(str + 2, strcat(p1 + 2, p2 + 1));
printf(" %s", str);
system(“pause”);
return 0;
}

输出结果:xycdBCD
其中str+2,这个是把数组当成指针用。str指向的是数组里的第一个元素,str+2指向数组里第三个元素,也就是字母z;p1+2、p2+1一样。
3.下面程序段的输出结果是
char *p1 = ”123”, *p2 = ”ABC”, str[50] = “xyz”; strcpy(str + 2, strcat(p1, p2)); printf(“%s\n”, str);
答案:错误。
p1和p2指向常量字符串,在常量区,不能对其进行操作。
改为数组即可,但数组初始化的时候在数组长度上加1,因为字符串末尾默认的有一个\0.
改为字符串后结果同2.
4.C++中,容器是一种标准类模板, C++标准类模板就是STL(Standard Template Library)
5.下面for循环执行的次数
for(m=0, n = -1; n=0;m++,n++)
n++;
该循环体一次也不执行,循环判断条件是一个赋值语句,在c中0为假,非0为真。
6堆和栈的区别:
对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向,对于栈来讲,生长放向是向下的,也就是向着内存地址减小的方向。

4G内存空间中,0-3G是用户空间,3-4是系统空间。

7.volatile变量
volatile应该解释为“直接存取原始内存地址”比较合适,“易变的”这种解释简直有点误导人;

精确地说就是,编译器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1)并行设备的硬件寄存器(如:状态寄存器)
2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3)多线程应用中被几个任务共享的变量

当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致
举一个不太准确的例子:
发薪资时,会计每次都把员工叫来登记他们的银行卡号;一次会计为了省事,没有即时登记,用了以前登记的银行卡号;刚好一个员工的银行卡丢了,已挂失该银行卡号;从而造成该员工领不到工资
员工 -- 原始变量地址
银行卡号 -- 原始变量在寄存器的备份
⒉ 在什么情况下会出现
1)并行设备的硬件寄存器
2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3)多线程应用中被几个任务共享的变量
补充:volatile应该解释为“直接存取原始内存地址”比较合适,“易变的”这种解释简直有点误导人;
“易变”是因为外在因素引起的,像多线程,中断等,并不是因为用volatile修饰了的变量就是“易变”了,假如没有外因,即使用volatile定义,它也不会变化;
而用volatile定义之后,其实这个变量就不会因外因而变化了,可以放心使用了; 大家看看前面那种解释(易变的)是不是在误导人
当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

8.scanf用于输入整数时,当遇到非数字字符结束,此时,非数字字符串将存入键盘缓冲区,如果接着读入字符,将从键盘缓冲区读入该字符。
scanf(“%d%c%d%c”,&a,&b,&c,&d),实际的输入形式可以为10A20B。

9.左值与右值
左值与右值在C/C++中表示位于赋值运算符两侧的两个值,赋值号左边的就叫左值(left-value),右边的就叫右值(right-value)。 比如:(1) int b = 3;(2) int a = b;第(2)行代码,a为左值,b为右值。不过现在的左值与右值的含义有了更深层次的含义:
L-value中的L指的是Location,表示可寻址。Avalue (computer science)that has an address.
R-value中的R指的是Read,表示可读。in computer science, a value that does not have an address in a computer language.

10.clone 和fork的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值