起步

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. 使用C++编写linux多线程程序

    前言 在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程 ...

  2. Python os.remove() 删除文件

    概述 os.remove() 方法用于删除指定路径的文件.如果指定的路径是一个目录,将抛出OSError. 在Unix, Windows中有效 语法 remove()方法语法格式如下: os.remo ...

  3. python中的os.listdir()函数

    os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表.这个列表以字母顺序. 它不包括 '.' 和'..' 即使它在文件夹中. 只支持在 Unix, Windows 下使用. ...

  4. This project is not a myeclipse hibernate project . Assuming Hibernate 3 capabilities configuration editor

    开某工程Hibernate配置文件时出现提示,信息大概如标题. 根据网友提供,选中工程,点击MyEclipse-->Project capabilities-->add hibernate ...

  5. mysql管理工具percona-toolkit-3简单使用介绍

    安装percona-toolkit-3 # -.el6.x86_64.rpm :.el6 -y 1.pt-summary #显示和系统相关的基本信息: [root@master ~]# pt-summ ...

  6. 图解Metrics, tracing, and logging

    Logging,Metrics 和 Tracing   最近在看Gophercon大会PPT的时候无意中看到了关于Metrics,Tracing和Logging相关的一篇文章,凑巧这些我基本都接触过, ...

  7. 通过设置ie的通过跨域访问数据源,来访问本地服务

    1.首先设置通过域访问数据源 设置通过域访问数据源 2.javascript脚本ajax使用本地服务登录(评价,人证的类似)接口 <html> <head> <scrip ...

  8. jdbcTemplate 调用存储过程。 入参 array 返回 cursor

    注:本文来源<   jdbcTemplate 调用存储过程. 入参 array 返回 cursor   > 需求: java传入一个list object.从数据库找到相关的数据并返回. ...

  9. Confluence 6 安装 SQL Server

    如果你还没有在安装可以连接的 Microsoft SQL Server 数据库,请先下载后进行安装.请参考 MSDN 上 Installation for SQL Server 的指南.  有关授权模 ...

  10. Oracle基础

    一.Oracle数据库与实例区分 Oracle数据库是存在电脑磁盘中的文件 实例是存在内存中的进程 我们是通过操作实例间接操作数据库的 我们操作结果都存在内存缓存中,当我们提交事务时,才将修改数据记录 ...