C++ 语法--变量和常量
起步
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 = π //三级指针
int ***pppi = &ppi;
多级指针需要解引用多次。
int use = ; use = ***pppi;
use = **ppi;
use = *pi;
常量
const限定符
可以初始化和读取,不可以赋值。
加在声明符之前。
const int ci = 0;
仅在文件内有效。
C++ 语法--变量和常量的更多相关文章
- Arduino语法-变量和常量
变量的声明: int led=11 一般变量的声明方法为类型名+变量名+变量初始化值.变量名的写法约定为首字母小写 变量的作用范围又称为作用域,变量的作用范围与该变量在哪儿声明有关,大致分为如下两种: ...
- Swift基础1.1——基本的语法—变量和常量
前些日子.第一届Swift开发人员大会开了之后.身边非常多搞OC的朋友就按捺不住了. 都认为是时候学一下Swift了,毕竟Swift已是趋势. 也是应他们再三要求,让我整理一下Swift的学习心得.今 ...
- C# 一、语法结构、注释、命名空间、Main入口点、变量与常量、运算符、流程控制(循环)
一.代码结构 1)一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Class 属性 一个 Main 方法 语句(St ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- 01.JS语法规范、变量与常量
前言: 学习一门编程语言的基本步骤 (01)了解背景知识 (02)搭建开发环境 (03)语法规范 (04)常量和变量 2.JS的开发环境 (1)浏览器自带的JS解释器(js引擎) (2 ...
- 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结
020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念
018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...
- 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例
017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...
随机推荐
- CF55D: Beautiful Number
传送门 一句话题意 求 l~r 之间有多少个数能整除自己各位上的数(排除 0 ) 分析 然后我们一看就知道数位 dp ,但是状态很难设计啊 QWQ 我们可以发现所有数位的 lcm 最大为 2520 ( ...
- go语言的安装、环境变量配置及简单使用
go语言的安装.环境变量配置及简单使用 1.安装git并且配置在path中,默认就勾选了 下载地址https://git-scm.com/download/win 2.下载安装visualstudio ...
- 通过python脚本获取服务器硬件信息
#!/usr/bin/python # coding:utf-8 """ 采集机器自身信息 1 主机名 2 内存 3 ip与mac地址 4 cpu信息 5 硬盘分区信息 ...
- RGB、YUV和HSV颜色空间模型
一.概述 颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象.颜色空间按照基本机 ...
- HDU 1250
简单大数 (要压位,不然会超内存) #include<iostream> #include<cstdio> #include<cstring> #include&l ...
- 10分钟了解Android的Handler机制
Handler机制是Android中相当经典的异步消息机制,在Android发展的历史长河中扮演着很重要的角色,无论是我们直接面对的应用层还是FrameWork层,使用的场景还是相当的多.分析源码一探 ...
- Java_oracle超出打开游标的最大数的原因和解决方案
第一步:核查Oracle数据库 的游标的最大数 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded) ORA-01000_maximum_o ...
- Confluence 6 管理你的 Confluence 许可证
你的许可证能够让你在运行 Confluence 的时候在指定的时间段获得特定的支持.同时这个许可证也定义了在你 Confluence 中可以使用的用户数量. 希望快速的查看当前的许可证信息,你可以进入 ...
- Confluence 6 编辑站点欢迎消息使用模板编辑器的小提示
站点欢迎消息是一个模板而不是一个页面,所以你需要使用模板编辑器来对你的消息进行编辑. 你可以和在你 Confluence 中其他页面中一样,在站点欢迎消息模板中添加文本,连接和宏.但是添加图片的话会有 ...
- mysql老是停止运行该怎么解决
你可能还会遇到无法启动mysql的错误 解决方法如下: