C++简易

一.内存

1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap):动态内存分配例如malloc,一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区,static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放
4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区:存放函数体的二进制代码。

二.命名空间

防止命名冲突

 1 #include<iostream>
 2 using namespace std;
 3
 4 namespace mfc
 5 {
 6     int inflag;
 7     void g(int a){cout << a << endl;}
 8 }
 9
10 namespace owl
11 {
12     int inflag;
13     void g(int b){cout << b << endl;}
14 }
15
16 int main()
17 {
18     mfc::inflag = 1;
19     owl::inflag = 2;
20     cout << mfc::inflag << endl;//1
21     cout << owl::inflag << endl;//2
22
23     mfc::g(1);//1
24     owl::g(2);//2
25
26     return 0;
27 }
 1 #include<iostream>
 2 using namespace std;
 3
 4 namespace mfc
 5 {
 6     int inflag;
 7     void g(int a){cout << a << endl;}
 8 }
 9
10 namespace owl
11 {
12     int inflag;
13     void g(int b){cout << b << endl;}
14 }
15 using mfc::inflag;
16 int main()
17 {
18     inflag = 1;
19     owl::inflag = 2;
20     cout << inflag << endl;//1
21     cout << owl::inflag << endl;//2
22     return 0;
23 }
 1 #include<iostream>
 2 using namespace std;
 3
 4 namespace mfc
 5 {
 6     int inflag;
 7     void g(int a){cout << a << endl;}
 8 }
 9
10 namespace owl
11 {
12     int inflag;
13     void g(int b){cout << b << endl;}
14 }
15 using namespace mfc;
16
17 int main()
18 {
19     inflag = 1;
20     owl::inflag = 2;
21     cout << inflag << endl;//1
22     cout << owl::inflag << endl;//2
23     g(1);//1
24     return 0;
25 }

三.操作符

 1 #include<iostream>
 2 #include <string>
 3 #include <iomanip>//操作符
 4 using namespace std;
 5
 6 int main()
 7 {
 8     double a = 3.1415;
 9     double b = 2.2222;
10     string str;
11
12     //cout << right右对齐,cout << left左对齐,默认右对齐
13     cout << setw(8) << a << endl;//空格空格3.1415,设置字段位数
14     cout << setfill(‘c‘) << setw(8) << a << endl;//cc3.1415,填充字符
15     cout << setw(8) << a << endl;//cc3.1415
16     cout << setprecision(2) << a << endl;//3.1,设置字段精度
17     cout << setprecision(2) << fixed << a << endl;//3.14,小数点后精度
18     cout << showpoint << 2.2 << endl;//2.20,强制显示小数点及尾部0,可以用noshowpoint取消
19     cout << scientific << 33.33 << endl;//3.33e+001
20
21     cout << hex << 16 << endl; // 10
22     cout << oct << 8 << endl;  // 10
23     cout << dec << 0x10 << endl; // 16
24
25     return 0;
26 }

四.文件

 1 #include<iostream>
 2 #include<fstream>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     ifstream infile;
 8     ofstream outfile;
 9
10     int num;
11     infile.open("E:\\1.txt");
12     outfile.open("E:\\2.txt", ios::app);
13     /*
14     ios::out输出到文件删除原有内容
15     ios::binary以二进制格式打开文件
16     ios::app输出到文件保留原有内容
17     */
18
19     if (! infile)//测试文件是否成功打开
20     {
21         cerr << "Error" << endl;
22     }
23     while (infile >> num)
24     {
25         cout << num << endl;
26         outfile << "Num = " << num << endl;
27         /*
28         Num = 1
29         Num = 2
30         Num = 3
31         Num = 4
32         Num = 5
33         */
34     }
35
36     infile.close();
37     outfile.close();
38
39
40     return 0;
41 }

五.若干特性

 1 #include<iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     bool flag = false;
 7     cout << flag << endl; // 0
 8     cout << boolalpha << flag << endl; // false,boolalpha强制让bool类型输出true和false
 9     return 0;
10 }
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     //枚举
 8     enum Num{MinSize = 0, Mid, MaxSize = 1000, Last};
 9     Num x, y;
10     int i = MinSize, j = MaxSize;
11     cout << i << " " << j << endl; // 0 1000
12     cout << Mid << " " << Last << endl;//1 1001
13
14     //结构体默认public
15     struct Point1
16     {
17     };
18     Point1 p1, p2;
19
20     typedef struct Point2
21     {
22     }*P;
23     P p3, p4;
24
25     //const
26     int b = 100, c = 1000;
27
28     const int *a = &b;
29     *a = 4;//error
30     a = &c;
31     b = 4;
32
33     int *const d = &b;
34     *d = 4;
35     d = &c;//error
36
37     return 0;
38 }
时间: 2024-10-06 23:24:57

C++简易的相关文章

Android 开发第七弹:简易时钟(秒表)

本文承接,Android 开发第五弹:简易时钟(闹钟) 和 Android 开发第六弹:简易时钟(计时器),这一部分是关于秒表的. 布局 同样是新建一个类(StopWatchView)并扩展自LinearLayout,并将其用作布局. <myapplication.nomasp.com.clock.StopWatchView android : id = "@+id/tabStopWatch" android : layout_width = "match_parent

最简易无加密方式下的ppp拨号连接

PPP拨号连接建立虚拟网卡,并可以进行路由设置.几乎所有其他的连接服务都建立在其之上,PPPoE,PPTP,L2TP等等. 而其中一个最基本的话题可能被忽略了,PPP是如何工作的,如何使用PPP建立最简易的连接. PPP协议实际上非常简单,握手信号之后即进行数据交换,由于原来的PPP连接的使用都是基于电话MODEM的点对点通信,不考虑过于复杂的加密并保证传输效率,所以PPP的缺省设置是基于tty设备的,如果使用串口就是ttyS0-ttyS? 当然,使用pppd应用于附加服务并不必须使用tty设备

求问自制简易Android地图大概思路

============问题描述============ 我想做一个简易的Android地图,不使用Google的API.让它可以实现移动,缩放,旋转,标记的功能.我现在知道的大体思路是把整张地图图片切割成若干小块,然后让这些小块共同移动,旋转.但是不知道这个思路对不对,还有使用什么Android控件和方法实现,请各位大神指点,谢谢!! ============解决方案1============ 引用 2 楼 despotdragon 的回复: Quote: 引用 1 楼 ITbailei 的回

简易状态机

SimpleFSM 包含状态切换以及事件驱动传递参数 下面的代码是登录的状态码 1 using System; 2 using UnityEngine; 3 using System.Collections; 4 5 public class LoginState : SingletonPrivider<LoginState>, GameState 6 { 7 private delegate void LoginEventHandler(object sender, LoginEventAr

在.NET里简易实现IoC

在.NET里简易实现IoC 前言 在前面的篇幅中对依赖倒置原则和IoC框架的使用只是做了个简单的介绍,并没有很详细的去演示,可能有的朋友还是区分不了依赖倒置.依赖注入.控制反转这几个名词,或许知道的也只是知道依赖倒置是原则,依赖注入.控制反转都是实现的方式,我将在下面对这些个名词做详细的介绍,在篇幅的最后还会自己实现了IoC容器的功能. 依赖倒置原则 我们先来看一段代码,代码1-1 public class Top { public void Execution() { Underly unde

老八系统简易调用AJAX

<script src="js/jquery-1.7.2.min.js"></script> <script> $(function(){ $("#txtaccount").blur(function(){ $.post("check.asp", { name:$(this).val(), type:"tjnickname" }, function(data,status){ if(data

简易2D横版RPG游戏制作

Unity学习笔记1 简易2D横版RPG游戏制作 http://m.blog.csdn.net/article/details?id=24601905

简易版DES加密和解密详解

在DES密码里,是如何进行加密和解密的呢?这里采用DES的简易版来进行说明. 二进制数据的变换 由于不仅仅是DES密码,在其它的现代密码中也应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为二进制数据,如图表所示,这里仅将使用的16字符(其中含有1个没有意义的空字符),将每个字符都对应不同的4bit的二进制编码进行变换,将明文表示成"0"和"1"的系列 表2.8 表2.9 本文部分参考自漫画密码,此文博主花了几个小时的时间整理,转载请注明http://ww

利用ajax短轮询+php与服务器交互制作简易即时聊天网站

主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events). 本文主要介绍ajax短轮询的简易实现方式. 看懂此文需要:ajax基础,php基础,sql基础,html/jquery基础 ---------------------------- 本人也是web新手,今天听说女票在学websocket,还做了个简易的网站利用广播和我通信.但是刷新一下数据就没了.. 我觉得这个还是挺有意思的,,就想着能不能做一个刷新

理解tomcat之搭建简易http服务器

做过java web的同学都对tomcat非常熟悉.我们在使用tomcat带来的便利的同时,是否想过tomcat是如何工作的呢?tomcat本质是一个http服务器,本篇文章将搭建一个简单的http服务器. 1 Catalina模型 首先我们先了解一下tomcat的大致工作原理.tomcat的核心是servlet容器,我们称它为Catalina(为什么叫这个名字?我也不知道 ̄へ ̄).模型图如1.1 图1.1 Connector是用来"连接"容器里边的请求的.它的工作是为接收到每一个 H