2018.8.5 复习笔记

1,"a" + "b" + 3 strcat

double d = 3
object obj = d
int i = (int)obj --异常
测试下装箱拆箱的时间,似乎很慢
拆装箱的本质??
看IL代码
"abbcd"是个引用?
s = "a" 有装箱吗?
s + "b" 有装箱吗?

where T :struct
where R :class
where V : ICompareable
where w : CAnimal
where x : class, new()
new必须是最后一个

IEnumerator实现枚举

显式实现
继承两个接口,中有同名方法
类型推断
hashtable dirtionary

yield方式的
IEnumerator
IEnumerable
IEnumerator<T>泛型实现 ?

------------------------------
索引器重载: 多维数组,string类型索引
可为空类型,object ?

什么叫类型安全?

委托接收实例的方法: dfun = obj.func
多播委托的加减顺序?
委托列表为空时可以继续减,但调用异常

线程t1调用t2.abort终止t2
t2在自己的线程中使用异常捕获,并输出t1传过来的信息

当前路径用 . 表示

GetType 可以用类名调用 ?
GetType("System.string") ?

---------------------
用UDP 做聊天室
一个电脑可能有多个IP
UDP:收数据需要绑定IP和端口,
只发送数据不需要绑定IP和端口

字符串转成字节数组后
字节数组如何转字符串

byte[] data
tcp.Receive(data)
这个数组应该多大?
底层数据包粘包后最大多大?

UDP的双端通讯可以使用TCP同样的思路
发送端自己不需要指定I自己的IP和端口
而只指定要连接的服务器的IP和端口
服务端接收连接后(TCP)
对UDP而言就是服务器REVICE后,会有一个IPENDPOINT返回,
这就是客户端的IP和端口,利用这个就可以与客户端通讯

c++线程

----------------------
unsigned int i = 0
int j = 1
i - 1 ?

-2147483648 < 2147483647 ? false
int i = -2147483648
i <2147483648 ? true

-2147483648 - 1 < 2147483648 ?

sum(int a[], unsigned len){
int i, sum = 0;
for(i=0; i<=len-1; i++)
sum += a[i];
return sum;
}
a[10] = {0};
sum(a, 0) ;

int x = 65536
int y = x * x;

x> y 等价于 -x < -y ?
x = -2147483648时不成立

main.c
int d= 100;
int x = 200;
int main(){
p1();
printf("d=%d, x]%d\n", d, x)
return 0;
}

p1.c
double d;
void p1(){
d = 1.0;
}

打印结果:
d=0, x=1072693248 ?

int copy_array(int* array, int coutn){
int i;
int *myarray = (int*)malloc(count*sizeof(int))
if(myarray == null)
return -1;
for(int i=0; i<count; i++)
myarray[i] = array[i]

}

int a = 0x80000000
int b = a/-1;
printf("%d\n", b);

int a = 0x80000000
int b = -1;
int c = a/b;
printf("%d\n", c);
除法错异常? 溢出

main(){
double a = 10;
printf("a = %d\n", a);
}

double func(int i){
volatile double d[1] = {3.14}
volatile long int a[2];
a[i] = 1073741824;
return d[0];
}

func(0)
func(1)
func(2)
func(3)
func(4)

二维数据间拷贝
行优先拷贝与列优先拷贝

double f(int x){
return 1.0/x;
}
void main(){
double a, b;
int i;
a = f(10);
b = f(10);
c = f(10); //试着去除这句看有什么不同
i = a == b;
printf("%d\n", i);
}

int main(int argc, char*argv[]){
int a= 10;
double *p=(double*)&a;
printf("%f\n", *p) //0.000000
printf("%f\n", (double(a)));//10.000000
return 0;
}

new()的多重重载使用
new 与 new()的区别
--------------------------
x86 包含 i386 ,i386 仅仅是 x86 的一部分。
x86 这里的 x 本来就是一个未知数性质的,他可以是 3、4、5、6、7 。
x86 是 Intel 建立起来的 CPU 架构。
他的 8086、8088、80286、80386、80486、Pentium 、Pentium Pro 、Pentium MMX ,Pentium 2 ,还有后面的 P3、P4 、PD 、Core 全系列,Xeon 的 x86 系列。以及 AMD 的 Intel 架构兼容全系列(楼主的 AMD 肯定也是啦,非 x86 架构如果楼主作为桌面计算机用上了,肯定不会来这里问这个问题了)。当然还有最近重新崛起的 VIA 的 C7 系列。
他们都是 x86 架构。
更多的 x86 代表的是 32 位的 Intel CPU 架构体系。
但其中分成很多代。i386 就是 80386 的那代 CPU 的标准,主要是支持 32 位的保护模式和实模式两种工作环境。这个功能很好很强大,一直沿用至今,而且系统对于这个功能是必须支持的。386 之后的 cpu 是完全兼容 i386 体系的。
i486 加入了新的一个功能,i586 (奔腾 1 代系列)又加入了新功能,i686 (奔腾 Pro 系列以后)又加入了新的功能体系。
i386 的软件可以运行在 i686 系统,但是 i686 的软件不能运行在之前的架构上。
旧 CPU 不能运行新软件主要是不能使用新的特性导致不能运行,但是旧的架构软件在新的架构上运行,仅仅是不能用新的功能体系,运行效率是没有减少的。
而且这个功能架构主要是 Linux 内核在使用。
所以楼主不要考虑 i386 和 x86 的关系。只要看到 i 什么 86 ,基本都能用。
如果有 i686 ,楼主的 CPU 只要不是 K6 系列,而是 Athlon 系列,最好选择 i686 ,但如果只有 i386 的,楼主注意安装后看看你的内核是不是 i686 体系的,如果是,性能不受影响。
题外:
i786 是一个隐藏的新体系,听说只能用在 P4 以后的 Intel CPU 上面。但是很多软件没有针对这个架构编写,所以除非自己基于 i786 编译,不然网上没有 i786 的软件。
这里还要说 x86_64 体系,这个是 AMD 提出并且最先使用的 x86 新的架构体系。他把 32 位的 i686 架构体系,扩展为 64 位。
但是因为变动很大的原因,64 位的系统软件要兼容 32 位的软件,需要在内核里打开支持,并且安装 32 位的兼容库才行。其实如果你有源代码,32位系统的源代码基本上可以直接在 64 位的系统上面编译成为 64 位架构可运行的软件(新的技术还是用不上)。
同样 64 位的 CPU 兼容上一代的 i686 架构,i686 CPU 不支持 x86_64 的软件。
如果楼主的 AMD CPU 是 Athlon 64 及其以后的 cpu 可以装 x86_64 的系统玩玩,不过注意,很多 32 位特有的软件,而且没有源代码的要么不能用,要么需要 32 位兼容库,Flash 的浏览器插件就是一个例子。64位的 Firefox 需要 32 位兼容库才能借助 Flash 插件显示 Flash 动画。Adobe 没有放出 64 位的插件,也没有提供源代码。
AMD 总是有新的点子,新的技术,却总是拼不过 Intel 的缓慢的技术革新。

------------------
10000x3 与 3x10000的效率差别?

UI适应分辨率

https://blog.csdn.net/wkhabc/article/details/52527202

智能指针 不能用于数组???
智能指针的使用及reset
注意事项??
p1 = p2
p1 = new(p2)
p1.reset(p2)
p1.reset(){A*p = new A()shared_ptr<A> ptr(p);shared_ptr<A> ptr2;ptr2.reset(p);
}int ary[] = {1, 2, 3, 4, 5}
for(int& e:ary)e*=10;struct A{int n; A(int i):n(i){}}vector<A> st(ary, ary +5)//类型转换构造函数

posted on 2018-08-05 08:18 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

2018.8.5 复习笔记相关推荐

  1. 2018.8.14-C#复习笔记总

    2018.8.14-C#复习笔记总 using System; using System.Collections.Generic; //using System.Linq; using System. ...

  2. 2018.8.14-C++复习笔记总

    2018.8.14-C++复习笔记总 // CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iost ...

  3. 复习笔记2018.8.3

    复习笔记2018.8.3 1,"a" + "b" + 3 strcat double d = 3 object obj = d int i = (int)obj ...

  4. 计算机网络复习笔记——考试版

    计算机网络复习笔记 文章目录 计算机网络复习笔记 第一章 计算机网络和因特网 1.1 什么是因特网--因特网的具体构成 1.2 网络边缘 1.3 网络核心 1.4 分组交换网络中的时延.丢包和吞吐量 ...

  5. 853计算机科学基础综合,2022考研853计算机专业基础综合《计算机组成原理》复习笔记及考研真题题库...

    2022考研853计算机专业基础综合<计算机组成原理>复习笔记及考研真题题库 计算机系统概论 一.计算机的分类 1电子模拟计算机 模拟计算机的特点是数值由连续量来表示,运算过程也是连续的. ...

  6. Spring复习笔记:4

    在复习笔记三中我们进行的案例的编写,我们可以发现,就算使用了注解的方式,xml配置文件文件还是不能够删除,现在我们来将一些新的注解可以让我们去掉xml配置文件. @Configuration 作用:指 ...

  7. matlab arr3(5 end),matlab复习笔记.doc

    matlab复习笔记.doc 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(),再开始第二行的书写.历史命令窗口(THEHISTORYCOMMAN ...

  8. 数据结构(c语言版)笔记6,2020考研计算机《数据结构(C语言版)》复习笔记(6)

    2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机<数据结构(C语言版)>复习笔记(6),希望能帮助大家! 第六章 树知识点整理 树是n个结点的有限集合,非空时必须满 ...

  9. HTML+CSS+JavaScript复习笔记持更(一)——标签篇

    前言 博主现在还是在校生,目前大三,突然想起HTML的很多基础都忘记的差不多了,于是买了几本基础书,创建这篇博文用于记录复习笔记,也希望我自己在整理的时候,能帮助大家加深一些基础知识的印象,本篇博文将 ...

最新文章

  1. Windows 8部署系列PART6:准备模板计算机配置
  2. 【祝贺】norains同志在这里开《Windows CE大排档》书友会
  3. 音视频技术开发周刊(第130期)
  4. linux查看网卡连接哪个cpu,Linux查看CPU/内存/网卡/操作系统信息
  5. SAP UI5 应用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面
  6. linux和windows的进程的虚拟地址空间
  7. SaltStack源码分析之:master端执行salt模块大致流程
  8. Javascritp入门
  9. 性能测试系列:高可用测试linux常用命令
  10. python+selenium常见坑
  11. fdfs-文件上传信息返回详情
  12. 618买什么运动装备、最值得入手的运动装备合集
  13. 钉钉考勤与企业系统对接
  14. 联盟链Quorum(基于raft共识)部署流程(三)- 部署基于Quorum链的区块链浏览器
  15. 真热闹,华为阿里腾讯加入中文编程争夺,抢风头的却另有其人
  16. 华为天猫官方旗舰店粉丝突破一千万
  17. LikeLib区块链底层公链技术应用
  18. 学C/C++想提升功底 可以花点时间看看这篇博客---C语言程序环境和预处理
  19. 天津影视剪辑培训,这些必须的剪辑技巧你Get了吗?
  20. 算白塞尔公式matlab,中误差计算公式

热门文章

  1. 处理项目重大质量问题的思路和原则
  2. 信息系统项目管理师-项目合同管理核心知识点思维脑图
  3. Windows服务器上怎样开放指定端口
  4. Vue中通过Axios向SpringBoot发送get和post请求
  5. EasyUI中拖动draggable的使用
  6. IDEA中SVN未提交代码,更新时有冲突接受其它怎么办
  7. java类是如何加载的?不知道classLoader和双亲委派,不是一个合格的程序员
  8. 【知识图谱】知识推理
  9. flutter开发vscode插件推荐(开发必备)
  10. 直播预告丨揭秘神策数据销售方法论,一起向 Top Sales 迈进!