C++基础语法

简介: 以上从上到下使用层次更接近人类使用,但是运行效率逐渐降低。(java是介于编译和解释型之间)编译型语言一般需要编译和链接的过程,才能变成真正的可执行的程序。

C++基础语法


编程语言的层次和类型

   ●  机器语言、汇编语言 等

   ●  编译型语言 C++ C 等

   ●  解释型语言 Basic Python 等

   ●  脚本语言 bash shell 等


以上从上到下使用层次更接近人类使用,但是运行效率逐渐降低。(java是介于编译和解释型之间)


编译型语言一般需要编译和链接的过程,才能变成真正的可执行的程序。


源代码 - 预处理 - 编译 - 汇编 - 链接 - 可执行文件


语言的数据类型

一个简单的例子:

int sum;          // 定义整型变量
int m = 1;        // 定义整型变量
int n = 1;        // 定义整型变量
sum = m + n;     

数据类型的内部结构:


   ●  C++中的每个变量都有其数据类型,数据类型决定这变量所占用的内存空间大小和布局方式、该空间能存储的值的范围以及变量能参与运算。


C++中的常见的数据类型:

名称 字节数 描述 范围
char 1 字符()或者整数,8位长 有符号-128-127无符号 0-255
short 2 短整数 16位长 有符号-32768-32767无符号0-65535
long 4 长整数 32位长 有符号-2147483648-2147483641无符号0-4294967295
int 4 整数 有符号-2147483648-2147483641无符号0-4294967295
float 4 浮点数


double 8 双精度浮点数


long double 8 长双精度浮点数


bool 1 布尔值 TRUE或FALSE
wchar_t 2 宽字符 一个宽字符

常见数据类型的定义:

void  main(void)
{
  char a[10] = "a";
  short int s = 97;
  int m = 97;
  long int n = 97;
  float f = 97.0f;
  double d = 97.0;
  long double k = 97.0;
  bool b = true;
  wchar_t w[10] = L"a";
}

开发环境的安装和使用


语言的标识符和关键字

标识符:


●  C++标识符是用来标识变量、函数、类、模块或者其他任何用户自定义的项目的名字;

●  一个标识符以字母A-Z或者a-z或者下划线_开始,后面跟零个或者多个字母、下划线和数字;

●  一个标识符不允许使用数字开头,一个标识符内不允许出现标点字符

●  不能将大小写混淆,C++是区分大小写的编程语言

●  不能使用C++关键字,原则上不允许长度超过32位


常见关键字:

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typename
char float reinterprent_cast typeid
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template


可以在 C++ keywords - cppreference.com内查看最新的关键字。


变量与常量


变量

●  变量:在程序运行中,其值可以改变的量称为变量;

●  变量在程序的执行中能够赋值,发生变化;

●  变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元


变量的定义

●  变量定义的基本形式 :首先是类型说明符,紧跟一个或者多个变量名称组成的列表,其中变量名以逗号分割,最后用分号结束。 int m = 1, n = 1;


●  当变量在创建时候获得了一个特定的值,我们就说这个变量被初始化了。用于初始化变量的值可以是任意复杂的表达式。


●  当一次定义了多个变量时,变量名字随着定义就可以使用了。int m =1, n=1; int sum = m+n;


常量

●  常量:在程序运行过程中其值一直保持不变的量称为常量

●  常量也区分不同的类型 2 1024 是整形 2.0f是浮点型 等


常量的定义

●  C++中使用两种简单的方式定义常量的方法:

   ○  使用#define :如 #define PI 3.1415926

   ○  使用const : 如 const double PI = 3.1415926


有人数能用const就不要用define 。我觉得是扯淡,这个还是看实际使用场景,但是确实需要避免define错误。


整形常量

●  整数常量可以是十进制、八进制或者十六进制

●  前缀指定基数:0X表述十六进制 、0表示8进制 、不带前缀表示十进制

●  整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数, L表示长整型,后缀可以是大写也可以是小写。


布尔常量

布尔常量共有两个 true false


字符常量

●  字符常量是在单引号中,如果以L(仅大写)开头,则表示宽字符 (L’x’),此时它必须存储在wchar_t类型的变量中,凑则它就是一个窄字符常量,可以存在char中;

●  字符常量可以是一个普通的字符(‘x’)、一个专一字符(‘\t’)或者一个普通字符(‘\u02C0’)


转义字符 意义 ASCLL码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
代表一个单引号 039
" 代表一个双引号字符 034
\ 代表一个反斜线字符’‘’ 092
? 代表一个问号 063
\0 空字符(NUL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\xhh 十六进制所代表的任意字符 十六进制


目录
相关文章
|
2月前
|
Java C# C++
C++ 11新特性之语法甜点1
C++ 11新特性之语法甜点1
33 4
|
2月前
|
编译器 C++ 容器
C++ 11新特性之语法甜点2
C++ 11新特性之语法甜点2
30 1
|
2月前
|
存储 算法 编译器
C++ 11新特性之语法甜点4
C++ 11新特性之语法甜点4
28 0
|
2月前
|
安全 C++ 容器
C++ 11新特性之语法甜点3
C++ 11新特性之语法甜点3
35 0
|
3月前
|
编译器 C++ 容器
C++语言的基本语法
想掌握一门编程语言,第一步就是需要熟悉基本的环境,然后就是最重要的语法知识。 C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 类 - 类可以定义为描述对象行为/状态的模板/蓝图。 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。 即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。 完整关键字
|
4月前
|
Java 编译器 程序员
C++中的语法知识虚继承和虚基类
**C++中的多继承可能导致命名冲突和数据冗余,尤其在菱形继承中。为解决这一问题,C++引入了虚继承(virtual inheritance),确保派生类只保留虚基类的一份实例,消除二义性。虚继承通过`virtual`关键字指定,允许明确访问特定路径上的成员,如`B::m_a`或`C::m_a`。这样,即使基类在继承链中多次出现,也只有一份成员副本,简化了内存布局并避免冲突。虚继承应在需要时提前在继承声明中指定,影响到从虚基类派生的所有后代类。**
|
4月前
|
编译器 C++ 开发者
C++一分钟之-属性(attributes)与属性语法
【7月更文挑战第3天】C++的属性(attributes)自C++11起允许附加编译器指令,如`[[nodiscard]]`和`[[maybe_unused]]`,影响优化和警告。注意属性放置、兼容性和适度使用,以确保代码清晰和可移植。示例展示了如何使用属性来提示编译器处理返回值和未使用变量,以及利用编译器扩展进行自动清理。属性是提升代码质量的工具,但应谨慎使用。
140 13
|
5月前
|
编译器 程序员 C++
C++一分钟之-属性(attributed)与属性语法
【6月更文挑战第28天】C++的属性为代码添加元数据,帮助编译器理解意图。C++11引入属性语法`[[attribute]]`,但支持取决于编译器。常见属性如`nodiscard`提示检查返回值,`maybe_unused`防止未使用警告。问题包括兼容性、过度依赖和误用。使用属性时需谨慎,确保团队共识,适时更新以适应C++新特性。通过示例展示了`nodiscard`和`likely/unlikely`的用法,强调正确使用属性能提升代码质量和性能。
89 13
|
5月前
|
编译器 C语言 C++
下一篇
无影云桌面