起步

Hello world!

 #include <iostream>

 int main()
{
std::cout<<"Hello, world!";
return ;
}

基本输入和输出对象

cin        标准输入

cout      标准输出

cerr       标准错误

clog       标准日志

注释

//单行注释

/*

   多行注释(不能嵌套)         

*/

内置基本类型

bool 布尔类型
short 短整型
int 整型
long 长整型
long long 长整型
float 单精度浮点数
double 双精度浮点数
long double 扩展精度浮点数
char 字符
wchar_t 宽字符
char16_t Unicode字符
char32_t Unicode字符

整形:包括整形,布尔类型,字符类型

浮点数:浮点类型

整形分为 带符号signed 和 无符号 unsigned

带符号:表示正数,0,负数

无符号:表示0和正数(也就是没有负号)

字面值常量

      //十进制
//八进制
0xc //十六进制
/*
十进制数照常写
八进制数以0开头
十六进制数以0x或0X开头
*/ //浮点型 //小数
3.141592654 //科学计数法
3.1415E0 //字符和字符串字面值 //字符
'a' //字符串
"Hello world!"

转义序列

换行符          \n

横向制表符     \t

纵向制表符     \v

反斜线           \\

回车符           \r

退格符           \b

问号              \?

进纸符           \f

响铃符           \a

双引号            \"

单引号            \'

字面值类型指示

前缀 含义 类型
u Unicode16字符 char16_t
U Unicode32字符 char32_t
L 宽字符 wchar_t
u8 UTF-8 char

布尔类型字面值   true      false

变量:命名的,可以改变其值的(可读,可修改),可供程序操作的储存空间。

变量定义基本形式:

类型说明符 变量名;

例子:int i;

初始化

int i;           //定义(没有初始化)
int a = ; //定义并初始化 a = ; //赋值 //列表初始化
int s = {};
int s{};
int s();

声明:声明定义存在

定义:声明并创建对象实体

extern int i;   //声明而不是定义
int j; //声明并定义 extern double pi = 3.1415;
//定义。初始化抵消extern作用 //变量只能定义一次,可以被多次声明

标识符

由字母,数字,下划线组成,必须以字母或下划线开头。不限制长度,对大小写敏感

作用域

变量的有效使用区域,开始于声明语句,结束于声明所在的作用域末端,大多数以大括号分隔。

全局作用域:所有作用域的根,任意大括号定义的作用域之外,通常为整个文件。

块作用域:语句块形成的作用域

外层作用域隐藏内层作用域的名字

允许内层作用域重新定义外层作用域已有的名字

复合类型

定义方式:

基本数据类型 声明符列表

例如:

int *p1, *p2;

int属于基本数据类型      *p1  *p2属于声明符    , 属于分隔符       其中  * 是指针符号,属于复合类型说明符       p1   p2属于标识符        ;为语句结束标志

引用(左值引用)

形式:   基本数据类型 &标识符;

&为引用的复合类型说明符

例如:int &r1 = i1, &r2 = i2;

引用只是别名,不创建实体,引用必须初始化,用非引用变量初始化。

指针

指针指向一个对象,两者基本数据类型必须相同。指针是实体,可以不初始化,会有一个不确定的值。

形式:基本数据类型 *标识符;

*为指针的复合类型说明符

例如:int *p1, *p2;

获取对象地址,即给指针赋值或使指针指向对象

使用取地址符& 形式: &变量名(这里的取地址符与引用的复合类型说明符符号相同,但是代表不同的意思。在声明语句内表示引用,在赋值语句内表示取地址符)

例如: int *pi = &ival;

基本数据类型应该对应

指针值:

1.指向一个对象

2.指向相邻对象所占空间的下一个位置

3.空指针,没有指向任何对象

4.无效指针,上述情况之外,指向无效地址,也叫垂悬指针或野指针。

访问指针所指的对象

使用解引用符* (多个意思么,不解释了)

int *pi = &ival;

cout << *pi;

int i;

i = *pi;

空指针

//空指针的多种创建方式
//可以初始化为空指针
//也可以赋值变为空指针 //使用空指针字面值
int *p1 = nullptr; //使用字面值常量0(为0的变量不可以)
int *p2 = ; //使用宏NULL
int *p3 = NULL;
//不过NULL就是0
#define NULL 0

void* 指针,存放任意地址,无视基本数据类型

指向指针的指针

指针的级数由*的个数决定。

一级指针(最低级的指针*)指向非指针对象。大于一级的指针指向相邻的下一级指针。如***指向**,**指向*,*指向非指针对象。

//对象
int ival = ; //一级指针
int *pi = &ival; //二级指针
int **ppi = &pi; //三级指针
int ***pppi = &ppi;

多级指针需要解引用多次。

int use = ;

use = ***pppi;
use = **ppi;
use = *pi;

常量

const限定符

可以初始化和读取,不可以赋值。

加在声明符之前。

const int ci = 0;

仅在文件内有效。

C++ 语法--变量和常量的更多相关文章

  1. Arduino语法-变量和常量

    变量的声明: int led=11 一般变量的声明方法为类型名+变量名+变量初始化值.变量名的写法约定为首字母小写 变量的作用范围又称为作用域,变量的作用范围与该变量在哪儿声明有关,大致分为如下两种: ...

  2. Swift基础1.1——基本的语法—变量和常量

    前些日子.第一届Swift开发人员大会开了之后.身边非常多搞OC的朋友就按捺不住了. 都认为是时候学一下Swift了,毕竟Swift已是趋势. 也是应他们再三要求,让我整理一下Swift的学习心得.今 ...

  3. C# 一、语法结构、注释、命名空间、Main入口点、变量与常量、运算符、流程控制(循环)

    一.代码结构 1)一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Class 属性 一个 Main 方法 语句(St ...

  4. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  5. 01.JS语法规范、变量与常量

    前言:    学习一门编程语言的基本步骤   (01)了解背景知识  (02)搭建开发环境  (03)语法规范  (04)常量和变量 2.JS的开发环境 (1)浏览器自带的JS解释器(js引擎) (2 ...

  6. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  7. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  8. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

  9. 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例

    017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...

随机推荐

  1. CF55D: Beautiful Number

    传送门 一句话题意 求 l~r 之间有多少个数能整除自己各位上的数(排除 0 ) 分析 然后我们一看就知道数位 dp ,但是状态很难设计啊 QWQ 我们可以发现所有数位的 lcm 最大为 2520 ( ...

  2. go语言的安装、环境变量配置及简单使用

    go语言的安装.环境变量配置及简单使用 1.安装git并且配置在path中,默认就勾选了 下载地址https://git-scm.com/download/win 2.下载安装visualstudio ...

  3. 通过python脚本获取服务器硬件信息

    #!/usr/bin/python # coding:utf-8 """ 采集机器自身信息 1 主机名 2 内存 3 ip与mac地址 4 cpu信息 5 硬盘分区信息 ...

  4. RGB、YUV和HSV颜色空间模型

    一.概述 颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象.颜色空间按照基本机 ...

  5. HDU 1250

    简单大数 (要压位,不然会超内存) #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  6. 10分钟了解Android的Handler机制

    Handler机制是Android中相当经典的异步消息机制,在Android发展的历史长河中扮演着很重要的角色,无论是我们直接面对的应用层还是FrameWork层,使用的场景还是相当的多.分析源码一探 ...

  7. Java_oracle超出打开游标的最大数的原因和解决方案

    第一步:核查Oracle数据库 的游标的最大数 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded) ORA-01000_maximum_o ...

  8. Confluence 6 管理你的 Confluence 许可证

    你的许可证能够让你在运行 Confluence 的时候在指定的时间段获得特定的支持.同时这个许可证也定义了在你 Confluence 中可以使用的用户数量. 希望快速的查看当前的许可证信息,你可以进入 ...

  9. Confluence 6 编辑站点欢迎消息使用模板编辑器的小提示

    站点欢迎消息是一个模板而不是一个页面,所以你需要使用模板编辑器来对你的消息进行编辑. 你可以和在你 Confluence 中其他页面中一样,在站点欢迎消息模板中添加文本,连接和宏.但是添加图片的话会有 ...

  10. mysql老是停止运行该怎么解决

    你可能还会遇到无法启动mysql的错误 解决方法如下: