C++高级编程1 C++速成
C++高级编程1 C++速成
1.常用的预处理指令
#include [file]
#define key value 这个是在C中经常使用的,定义常量数值,用于字符串替换的工作。
#ifndef key #ifdef key
#define key
#endif
#pragma once 会因为编译器而有所不同,如果编译器支持的话可以用于代替上面的指令,在预处理阶段会提示警告。
#ifndef KEY
#define KEY
//code
#endif
可以使用#pragma once 代替。
2.C++运行程序传递的参数
int main(int argc,char ** argv):
其中argv表示的是这些参数,第一个参数都是程序的名字。
3.变量初始化
C++中如果使用了未初始化的变量,在程序编译期间会报错,但是我们可以通过指针输出指针指向的内存区域的对象数据,但是该数据是乱起八糟。
对于利用char 指针指向字符串,删除的时候需要使用 delete [] p,但是问题是必须char指向的是在堆中的内存空间,而不可以是字符串常量。
char *pChar = new char[100];
pChar[0] = 'a';
pChar[1] ='b';
pChar[2] = '\0';
cout << pChar << endl;
delete []pChar;
这个样子是可以的,但是如果char *p = "yangteng";但是不可以delete掉,因为这样的话,指针指向的是在常量区的数据.不可以删除.但是在此语句之前需要删除delete []p;
4.枚举类型
enum Type{
yang,teng=10,fei
};
cout <<"enum yang:"<< yang << endl;
cout <<"enum teng:" << teng << endl;
cout << "enum fei:" << Type::fei << endl;
5.C++11规范中新增加的循环:
int arr[] = {1,2,3,4,5,6};
for(auto i : arr){ // for(auto & i : arr)
i = i*2;
cout << i << " " ;
}
cout << endl;
for(auto i : arr){
cout << i<<" " ;
}
cout << endl;
6数组的初始化
int arr [10]={10};//只有第一个元素是10,其他的都初始化为0
for (int i =0; i<sizeof(arr)/sizeof(int) ; i++){
cout << arr[i] << " " ;
}
cout << endl;
在C++11 中引入了array (#include <array>)初始化为 0,但是大小在编译期间就已经决定了,不可以字运行的时候改变,运行时数组不会变大或者是变小。
array<int,4> arr = {9,7};
for(auto i : arr){
cout << i << " ";
}
7.堆栈的知识
堆栈和栈是在编译期间决定了内存的大小,因此在编程中是不可以声明大小可以变化的数组,必须是确定的值。
const int size = 100;
int arrays[size] ;
这样是对的,但是如果将const删除掉,就会出现编译不通过的错误提示。
8.字符串的形式
C风格的字符串:
char arrayString[10] = “yang”;最后面需要考虑\0字符。
char* p = “yang;
c++中使用的是string
9.const用法
定义常量 const float PI = 3.1415926;
const保护参数, void fun(const int a); 放置在程序中修改参数变量的值。
修饰方法,放在最后面,在成员函数中,如果不修改成员变量的话,就最好使用const修饰成员函数,然后在程序函数中如果不小心修改了成员变量,就会编译报错。
C++高级编程1 C++速成的更多相关文章
- 读《C#高级编程》第1章问题
读<C#高级编程>第1章 .Net机构体系笔记 网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但是做事情很能坚持. 本章主要是了解.Net的结构,都是一些概念,并没 ...
- MVC高级编程+C#高级编程
本人今年的目标是学习MVC高级编程和C#高级编程,把自己的基础打的扎实,本文中值是一个开到,定期会在上面记录学习的技术点和心得就,加油吧!!!!!
- 《C#高级编程》读书笔记
<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) sh ...
- jquery插件开发继承了jQuery高级编程思路
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- jQuery高级编程
jquery高级编程1.jquery入门2.Javascript基础3.jQuery核心技术 3.1 jQuery脚本的结构 3.2 非侵扰事JavaScript 3.3 jQuery框架的结构 3. ...
- (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- multiple definition of `err_sys' 《UNIX环境高级编程》
本文地址:http://www.cnblogs.com/yhLinux/p/4079930.html 问题描述: [点击此处直接看解决方案] 在练习<UNIX环境高级编程>APUE程序清单 ...
- Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程
Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...
- unix环境高级编程基础知识之第二篇(3)
看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...
随机推荐
- GitHub上最热门的11款开源安全工具
恶意软件分析.渗透测试.计算机取证——GitHub托管着一系列引人注目的安全工具.足以应对各类规模下计算环境的实际需求. 作为开源开发领域的基石,“所有漏洞皆属浅表”已经成为一条着名的原则甚至是信条 ...
- 伪类 :after 清除浮动的原理和方法
浮动元素容器的clearing问题1. 问题的由来有这样一种情形:在一个容器(container)中,有两个浮动的子元素.<div> <div style=" ...
- kdump+crash
参考:http://www.360doc.com/content/19/0205/08/36367108_813163495.shtml https://blog.csdn.net/u01436103 ...
- jquery试题
1.下面哪种说法是正确的? 您的回答:jQuery 是 JavaScript 库 2.jQuery 使用 CSS 选择器来选取元素? 您的回答:正确 3.jQuery 的简写是? 您的回答:$ 符号 ...
- CSS 图像拼合技术
CSS 图像拼合技术 一.图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图像拼合会降低服务器的请求数量,并节省带宽. 二.图像拼合 - ...
- WCF可靠性会话之服务分流
可靠性绘画答条件: (1)服务绑定支持可靠性绘画:特别是netTcpBinding.wsHttpBinding及wsDualHttpBinding. wsDualHtttpBinding可靠性绘画始终 ...
- 20145324 《Java程序设计》第8周学习总结
20145324 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 1.NIO使用频道来衔接数据节点,可以设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记,提供clear ...
- lua5.3中luaL_setfunc设置upvalue的用法示例
缘起 luaL_setfuncs 这个函数可以注册c函数到lua,另外还可以设置闭包函数使用的变量upvalue. 我没有用过,在 云风的skynet 才第一次见过,于是写个例子实际使用以下. 函数原 ...
- PHP闭包 function() use(){}
php的闭包(Closure)也就是匿名函数.是PHP5.3引入的. 闭包的语法很简单,需要注意的关键字就只有use,use意思是连接闭包和外界变量. $a =function()use($b) { ...
- 关于在phpStudy环境下,windows cmd中 php不是内部命令问题
首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去,path中, 一定要是这个样子的: D:\phpStudy\php\php-5.6.27-nts 不然没 ...