起步

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. 在 mingw32 上编译 libvpx 1.7.0 时的注意事项

    in the vp8/common/theading.h Just need to add 1 line:#include <sys/types.h>before the last occ ...

  2. servlet生成图片验证码

    package cn.itcast.servlet.session.demo3; import java.awt.Color; import java.awt.Font; import java.aw ...

  3. redis conf 中文详解

    # Redis示例配置文件 # 注意单位问题:当需要设置内存大小的时候,可以使用类似1k.5GB.4M这样的常见格式: # # 1k => 1000 bytes # 1kb => 1024 ...

  4. 4-HTML Computer Code Elements

    HTML Computer Code Elements Tag Description <code> Defines programming code <kbd> Define ...

  5. LabVIEW 波形图表显示多条曲线

    如何在波形图表中显示多条曲线呢? 首先看看波形图表的说明,请查看labVIEW 帮助 图 1 波形图表控件的即时帮助信息   关键就在绑定多个点. 图 2 利用捆绑函数将多个信号捆绑成簇   图 3 ...

  6. thyemleaf:禁用JS缓存(原创)

    在开发时经常需要调整JS,但是调整后由于页面缓存的原因,看不到实时效果. 开发环境:springboot+thymeleaf 1.配置文件多模式 2.获得当前的激活的模式和随机数 import org ...

  7. bsdiff的编译与使用

    bsdiff是一个差异包比较工具,可以用来实现增量更新. 下载地址:http://www.daemonology.net/bsdiff 编译 Mac环境 版本:macOS 10.12 1.解压下载的b ...

  8. Python split()

    split翻译为分裂.  split()就是将一个字符串分裂成多个字符串组成的列表. split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割. //---当不带参数时 example: ...

  9. mysql·事务挂起

          当开启事务后,程序挂了而事务没有提交,那么会被锁住,报错:连接超时,但不影响查询. 下面操作需要权限     一.查询现在被占用的锁信息 select * from information ...

  10. Centos查看端口占用和开启端口命令

    Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1.开启端口(以80端口为例) 方法一: /sbin/ ...