C all
2015-09-18 11:09
176 查看
程序最终的目的是解决问题。语言:一切都是数据和指令。
命令行界面是最终的,GUI不过是调用命令行的。
第三代交互方式:自然交互界面。
input - CPU process(运算器,控制器)-output。存储器。外部设备。
0101二进制。计算机原理,网络,算法结构,
机器指令格式:操作码,操作数。程序不过是指令序列。
汇编语言。编译器:翻译器。文本转换。
语言进化史:asm,c,oc/c++,java/php/python.
学会C/C++,走遍全球都不怕。永不过时的贵族语言。
20年后还会存在C/C++,Java. IOS已是巅峰。
C语言未来用武之地:云计算,物联网,移动互联网。
上层应用只是调用API而已。
qianli wuxian.顽强的毅力可以征服世界上任何一座高峰
///////////////
system(“notepad”);
system(“pause”);
乌班图ubuntu,服务器都是Linux.BAT
Linux:五年不关机,Unix:五十年不关机(取款机后台)。
xCode,VS, VIM. 跨平台:QT,Eclipse,Code Blocks.
内存空间-存放指令或者数据
变量如果不初始化,可以编译成功,但是执行的时候,很可能报错 。
当操作系统回收的时候,并不清空内存单元,所以存在大量的垃圾数据。
如果变量不初始化,就会默认读取垃圾数据, 有些垃圾数据会导致程序崩溃。
所以,变量使用之前,必须初始化。
#define Pai 3.14159;
const float pai 3.14159;
sizeof是个单目运算符,用来计算操作数在内存中占据的字节数.char
所谓“声明”,就是告诉编译器有这么一个东西。
不同的数据类型有不同的操作,不同的内存大小。
内存分段管理:常量区,变量区,代码区。
如何更好更有效率的使用变量,是一门专门的学科——数据结构。
程序:为解决某一问题而设计的一系列有序指令的集合。
if(){} else if(){} else if(){} else{};
switch(c){case ‘A’: case ‘B’: break;
}
std:标准,跨平台。
C5个基本数据类型: void, int, float, double, 和 char.
asm {
instruction-sequence
}
计算机本质上是由数字电子电路组成的运算机器,所有的运算都只能通过数字来表示和处理。通过将各种数据转换为数字表示,可以使计算机处理各种信息,比如音乐、图片、电影等。
输入类指令:用于从键盘、文件或者其它设备获取数据。
输出类指令:用于把数据显示到屏幕,或者存入一个文件,或者发送到其它设备,比如打印机。
基本运算类指令:用于执行最基本的数学运算(加减乘除)和数据存取.
测试和分支类指令:用于判断某个条件是否成立,然后根据不同的结果执行不同的后续指令。
循环类指令:用于重复执行一系列操作。
对于程序来说,有上面这几类指令就足够了。
形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
long factorial(int n){
if(n== 1 || n == 0 ){
return 1;
}else{
return factorial(n - 1) * n;
}
}
//C——————-
for,do while,goto.
基本数据类型,复合数据类型,结构体。
struct stu{
int num;
char name[40];
char sex;
float score;
}boy1, boy2;
结构体类型与结构体变量概念不同:
类型:不分配内存;变量:分配内存
结构体与数据抽象。
大多数的计算机运算是对现实世界的模拟。
数组:
int a[10] = {1,2,3};//others:0
字符串,指针:类型不同,支持的操作不同(+-*/%);
字符串总是以’\0’作为串的结束符。
strcpy ,strcmp,strcat,memset,memcpy.
emset(buffer,’*’,strlen(buf));
strlen:测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。
F5: 开始调试
F10: 调试到下一句,这里是单步跟踪
F11: 调试到下一句,跟进函数内部
Shift+F11: 从当前函数中跳出
Ctrl+F10: 调试到光标所在位置
F9: 设置(取消)断点
本质:硬件,加法器电路,与或非门。
指针:存储的是地址。以地址为值的变量就是指针变量,简称指针。
. 指针的类型是derived from其它类型,也就是说指针的类型是由它指向的类型决定的;
. 指针是一种reference类型,即引用类型;
所有指针占的存储一样大,因为它们的值都是地址,通常用一个机器字表示。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。
若char aa[10]; 则strlen(aa)结果是不定的
若char aa[10]={‘\0’}; 则strlen(aa)则结果为0
若char aa[10]=”jun”; 则strlen(aa)则结果为3
而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40
文件:普通文件,设备文件(打印机,显示器,键盘)。FILE *fp;
动态分配一块内存:malloc/free.数组大小是静态的,不变的。
内存四区:常量区,代码区,堆(new),栈(自动变量和函数信息)。
Vector,List,Map.
函数栈:push ebp;push 2;push 0; …
一般来说,标准的输出和输入设备通常指的是显示器和键盘,在支持重定向的操作系统中,标准输入输出能被替换
不论是传值调用还是传址调用,编译器都要为每个参数制作临时副本,或称拷贝,函数体中对参数的修改都是对副本的修改
如果要细分,函数返回也可以认为存在传值和传址两种方式。函数返回同样也是根据副本机制来处理的,首先来回顾下函数返回的流程:
当执行到return语句时,return的值被复制到某个内存单元或寄存器中,其地址是由编译器来维护的,
程序员无法直接访问该地址,也就是说,在函数执行完毕,相关现场被撤销前,
返回的值被复制保存到了某个地方,编译器访问该位置即可知道函数的返回值。
该位置即可看成是函数中返回值的副本。
25.
struct Student
{ int num;
float score;
struct Student *next;
}a,b,c;
1.ref, int i = &j;const,
auto decltype,nullptr,for(i:arr),lambda.
string,vector,*this,friend,
C++标准库,容器,泛型算法,拷贝控制(三原则)
OOP,模板与泛型编程,异常处理和名字空间。
2. c++ primer
托管代码是一种中间语言,运行在CLR上(独立兼容);
非托管代码被编译为机器码,运行在机器上。
3. STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器).
C++中的虚函数的作用主要是实现了多态的机制。
关于多态,简而言之就是用父类型别的指针指向其子类的实例,
然后通过父类的指针调用实际子类的成员函数。
这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。
所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。
4. 虚函数表(Virtual Table)解决了继承、覆盖的问题.
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。
深入浅出设计模式 其实Unix很简单
对于程序员来说Unix/Linux比Windows简单多了。我觉得GUI确实不那么热门了
5. TCP/IP协议:物理层,网络层,传输层,应用层。
以太网报头,IP报头,TCP报头。
命令行界面是最终的,GUI不过是调用命令行的。
第三代交互方式:自然交互界面。
input - CPU process(运算器,控制器)-output。存储器。外部设备。
0101二进制。计算机原理,网络,算法结构,
机器指令格式:操作码,操作数。程序不过是指令序列。
汇编语言。编译器:翻译器。文本转换。
语言进化史:asm,c,oc/c++,java/php/python.
学会C/C++,走遍全球都不怕。永不过时的贵族语言。
20年后还会存在C/C++,Java. IOS已是巅峰。
C语言未来用武之地:云计算,物联网,移动互联网。
上层应用只是调用API而已。
qianli wuxian.顽强的毅力可以征服世界上任何一座高峰
///////////////
system(“notepad”);
system(“pause”);
乌班图ubuntu,服务器都是Linux.BAT
Linux:五年不关机,Unix:五十年不关机(取款机后台)。
xCode,VS, VIM. 跨平台:QT,Eclipse,Code Blocks.
内存空间-存放指令或者数据
变量如果不初始化,可以编译成功,但是执行的时候,很可能报错 。
当操作系统回收的时候,并不清空内存单元,所以存在大量的垃圾数据。
如果变量不初始化,就会默认读取垃圾数据, 有些垃圾数据会导致程序崩溃。
所以,变量使用之前,必须初始化。
#define Pai 3.14159;
const float pai 3.14159;
sizeof是个单目运算符,用来计算操作数在内存中占据的字节数.char
所谓“声明”,就是告诉编译器有这么一个东西。
不同的数据类型有不同的操作,不同的内存大小。
内存分段管理:常量区,变量区,代码区。
如何更好更有效率的使用变量,是一门专门的学科——数据结构。
程序:为解决某一问题而设计的一系列有序指令的集合。
if(){} else if(){} else if(){} else{};
switch(c){case ‘A’: case ‘B’: break;
}
std:标准,跨平台。
C5个基本数据类型: void, int, float, double, 和 char.
asm {
instruction-sequence
}
计算机本质上是由数字电子电路组成的运算机器,所有的运算都只能通过数字来表示和处理。通过将各种数据转换为数字表示,可以使计算机处理各种信息,比如音乐、图片、电影等。
输入类指令:用于从键盘、文件或者其它设备获取数据。
输出类指令:用于把数据显示到屏幕,或者存入一个文件,或者发送到其它设备,比如打印机。
基本运算类指令:用于执行最基本的数学运算(加减乘除)和数据存取.
测试和分支类指令:用于判断某个条件是否成立,然后根据不同的结果执行不同的后续指令。
循环类指令:用于重复执行一系列操作。
对于程序来说,有上面这几类指令就足够了。
形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
long factorial(int n){
if(n== 1 || n == 0 ){
return 1;
}else{
return factorial(n - 1) * n;
}
}
//C——————-
for,do while,goto.
基本数据类型,复合数据类型,结构体。
struct stu{
int num;
char name[40];
char sex;
float score;
}boy1, boy2;
结构体类型与结构体变量概念不同:
类型:不分配内存;变量:分配内存
结构体与数据抽象。
大多数的计算机运算是对现实世界的模拟。
数组:
int a[10] = {1,2,3};//others:0
字符串,指针:类型不同,支持的操作不同(+-*/%);
字符串总是以’\0’作为串的结束符。
strcpy ,strcmp,strcat,memset,memcpy.
emset(buffer,’*’,strlen(buf));
strlen:测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。
F5: 开始调试
F10: 调试到下一句,这里是单步跟踪
F11: 调试到下一句,跟进函数内部
Shift+F11: 从当前函数中跳出
Ctrl+F10: 调试到光标所在位置
F9: 设置(取消)断点
本质:硬件,加法器电路,与或非门。
指针:存储的是地址。以地址为值的变量就是指针变量,简称指针。
. 指针的类型是derived from其它类型,也就是说指针的类型是由它指向的类型决定的;
. 指针是一种reference类型,即引用类型;
所有指针占的存储一样大,因为它们的值都是地址,通常用一个机器字表示。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。
若char aa[10]; 则strlen(aa)结果是不定的
若char aa[10]={‘\0’}; 则strlen(aa)则结果为0
若char aa[10]=”jun”; 则strlen(aa)则结果为3
而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40
文件:普通文件,设备文件(打印机,显示器,键盘)。FILE *fp;
动态分配一块内存:malloc/free.数组大小是静态的,不变的。
内存四区:常量区,代码区,堆(new),栈(自动变量和函数信息)。
Vector,List,Map.
函数栈:push ebp;push 2;push 0; …
一般来说,标准的输出和输入设备通常指的是显示器和键盘,在支持重定向的操作系统中,标准输入输出能被替换
不论是传值调用还是传址调用,编译器都要为每个参数制作临时副本,或称拷贝,函数体中对参数的修改都是对副本的修改
如果要细分,函数返回也可以认为存在传值和传址两种方式。函数返回同样也是根据副本机制来处理的,首先来回顾下函数返回的流程:
当执行到return语句时,return的值被复制到某个内存单元或寄存器中,其地址是由编译器来维护的,
程序员无法直接访问该地址,也就是说,在函数执行完毕,相关现场被撤销前,
返回的值被复制保存到了某个地方,编译器访问该位置即可知道函数的返回值。
该位置即可看成是函数中返回值的副本。
25.
struct Student
{ int num;
float score;
struct Student *next;
}a,b,c;
1.ref, int i = &j;const,
auto decltype,nullptr,for(i:arr),lambda.
string,vector,*this,friend,
C++标准库,容器,泛型算法,拷贝控制(三原则)
OOP,模板与泛型编程,异常处理和名字空间。
2. c++ primer
托管代码是一种中间语言,运行在CLR上(独立兼容);
非托管代码被编译为机器码,运行在机器上。
3. STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器).
C++中的虚函数的作用主要是实现了多态的机制。
关于多态,简而言之就是用父类型别的指针指向其子类的实例,
然后通过父类的指针调用实际子类的成员函数。
这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。
所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。
4. 虚函数表(Virtual Table)解决了继承、覆盖的问题.
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。
深入浅出设计模式 其实Unix很简单
对于程序员来说Unix/Linux比Windows简单多了。我觉得GUI确实不那么热门了
5. TCP/IP协议:物理层,网络层,传输层,应用层。
以太网报头,IP报头,TCP报头。
相关文章推荐
- cuda编程 总结
- SHOPING 购物(学了老男孩视频写的)
- 正则表达式的学习及示例
- IOS UITableView 表格重用 下拉覆盖
- K-means算法的实现
- 扑克牌顺子
- windows下socket编程:区分shutdown()及closesocket()
- Mark
- NameNode 接收请求
- Android uses-permission 权限大全
- Contains Duplicate 重复数的判断
- windows下socket编程:区分shutdown()及closesocket()
- 随机函数Random()生成验证码
- visual studio 2010 添加数据库连接 测试连接通过 报错:关键字不在数据字典中
- ios8/sdk8/xcode6/iphone6(+)适配
- jfinal与bootstrap的登录跳转实战
- sqlservice 事物 以及acid原则,隔离级别,脏读,幻读,不可重复读等
- 关于抽象的一些收集
- Rectangle Area 两个矩形的面积
- jfinal与bootstrap的登录跳转实战