陕西门户网站建设,淘宝网网站建设的需求分析,中国电子商务网,做视频网站公司要怎么做的学习一门新的程序设计语言得到最好方法就是练习编写程序#xff01;
C基础
变量和基本类型
基本内置类型
定义解释 算术类型 整型#xff1a;包括字符和布尔类型#xff0c;bool、char、wchar_t、char16_t、char32_t、short、int、long、long long、 浮点型#xff1a;…学习一门新的程序设计语言得到最好方法就是练习编写程序
C基础
变量和基本类型
基本内置类型
定义解释 算术类型 整型包括字符和布尔类型bool、char、wchar_t、char16_t、char32_t、short、int、long、long long、 浮点型float、double、long double 类型转换 类型所能表示的值的范围决定了转换的过程 字面值常量 整型20 浮点型3.14159 字符a 字符串Hello World 转义序列/n 变量
变量定义基本形式首先是类型说明符随后紧跟由一个或多个变量名组成的列表其中变量名以逗号分隔最后以分号结束。
int sum, value;
初始化当对象在创建时获得了一个特定的值就说这个对象被初始化了。初始化的含义是创建变量时赋予其一个初始值而赋值的含义是把对象的当前值擦除而以一个新值来替代。
double price 109.99;
列表初始化用花括号来初始化变量的形式被称为列表初始化。
int units_sold 0;
int units_sold {0};
int units_sold(0);
int units_sold{0};
标识符由字母、数字和下划线组成其中必须以字母或下划线开头标识符长度没有限制但对大小写字母敏感。
int somename, someName, SomeName, SOMENAME;//定义了4个不同的int 变量
作用域是程序的一部分在其中名字有其特定的含义C语言中大多数作用域都以花括号分隔同一个名字在不同的作用域可能指向不同的实体名字的有效区域始于名字的声明语句以声明语句所在的作用域末端为结束。主要分成全局作用域和块作用域。
复合类型
复合类型指基于其他类型定义的类型主要有引用和指针。
引用reference为对象起了另外一个名字引用类型引用另外一种类型。通过将声明符写成d的形式来定义引用类型其中d是申明的变量名。
引用必须初始化
引用即别名
int ival 1024;
int refVal ival;
int refVal2; //报错引用必须被初始化
允许在一条语句中定义多个引用其中每个引用标识符都必须以符号开头。
int i 1024, i2 2048; //i和i2都是int
int r i, r2 i2;//r是一个引用与i绑定在一起r2是int
int i3 1024 ri i3; //i3是int, ri是一个引用与i3绑定在一起
int r3 i3, r4 i2; //r3和r4都是引用 指针pointer是“指向point to”另外一种类型的复合类型与引用类似指针也实现了对其他对象的间接访问指针与引用相比有很多的不同点其一指针本身就是一个对象允许对指针赋值和拷贝而且在指针的生命周期内他可以先后指向几个不同的对象其二指针无须在定义时赋初值。
和其他内置类型一样在块作用域内定义的指针如果没有被初始化也将拥有一个不确定的值。
定义指针类型的方法将声明符写成*d的形式其中d是变量名如果在一条语句中定义了几个指针的变量每个变量前面都必须有符号*。
int *ip1, *ip2;//ip1和ip2都是指向int型对象得到指针
double dp, *dp2; //dp2是指向double型对象的指针dp是double型对象 获取对象的地址指针存放某个对象的地址要想获取该地址需要使用取地址符操作符。
double dval;
double *pd dval; //初始值是double型对象的地址
double *pd2 pd; //初始值是指向double对象的指针
空指针null pointer 不指向任何对象在试图使用一个指针之前代码可以首先检查它是否为空。
建议初始化所有指针。
int *p1 nullptr;
int *p2 0;
int *p3 NULL; //需要首先#include cstdlib
void*指针是一种特殊的指针类型可用于存放任意对象的地址一个void*指针存放着一个地址这一点和其他指针类似不同的是对该地址中到底是个申明类型的对象并不了解。
指向指针的指针指针是内存中的对象像其他对象一样也有自己的地址因此允许把指针的地址再存放到另一个指针当中。
int ival 1024;
int *pi ival;//pi指向一个int型的数
int **ppi pi;//ppi指向一个int型的指针
指向指针的引用引用本身不是一个对象因此不能定义指向引用的指针但指针是对象所以存在对指针的引用。
int i 42;
int *p;//p是一个int型指针
int *r p;//r是一个对指针p的引用 【待更新2023.7.30】
const限定符 处理类型 自定义数据结构 字符串、向量和数组
命名空间的using声明标准库类型string标准库类型vector迭代器介绍数组多维数组
表达式
基础算术运算符逻辑与关系运算符赋值运算符递增和递减运算符成员访问运算符条件运算符位运算符sizeof运算符逗号运算符类型转换运算符优先级表
语句
简单语句语句作用域条件语句迭代语句跳转语句try语句块和异常处理
函数
函数基础参数传递返回类型和return语句函数重载特殊用途特性函数匹配函数指针
类
定义冲向数据类型访问控制与封装类的其他特性类的作用域构造函数再探类的静态成员
C标准库
IO库
IO类文件输入输出string流
顺序容器
顺序容器概览顺序容器操作vector对象是如何增加的额外的string操作容器适配器
泛型算法
初识泛型算法定制操作再探迭代器泛型算法结构特定容器算法
关联容器
关联容器概述关联容器操作无序容器
动态内存
动态内存与智能指针动态数组使用标准库文本查询程序 C类设计者工具
拷贝控制
拷贝、赋值与销毁拷贝控制和资源管理交换操作拷贝控制示例动态内存管理类对象移动
重载运算与类型转换
输入和输出运算符算术和关系运算符赋值运算符下标运算符递增和递减运算符成员访问运算符函数调用运算符重载、类型转换与运算符
面向对象程序设计
OOP概述定义基类和派生类虚函数抽象基类访问控制与继承继承中的类作用域容器与继承文本查询程序再探
模板与泛型编程
定义模板模板实参推断重载与模板可变参数模板模板特例化
C高级主题
标准库特殊设施
tuple类型bitset类型正则表达式随机数IO库再探
用于大型程序的工具
异常处理命名空间多重继承与虚继承
特殊工具与技术
控制内存分配运行时类型识别枚举类型类成员指针嵌套类union局部类固有的不可移植的特性
C11的新特性
特性解释long long 类型列表初始化nullptr常量
参考
C Primer(第5版).