C++变量,常量,数组和字符串详解

目录
  • 一、内存和寻址概述
  • 二、变量
    • 1.声明变量
  • 2.变量的作用域
    • 2.1 局部变量
    • 2.2 全局变量
  • 3.c++变量类型
    • 3.1、bool布尔类型
    • 3.2 char字符型
  • 4.常量
  • 总结

一、内存和寻址概述

可编程设备包含微处理器和一定数量的临时存储空间。临时存储器被称为随机存取存储器(RAM)。

RAM类似于宿舍里成排存物柜的存储区域,每个存物柜都有编号,即地址。要访问特定的内存单元,需要使用指令要求处理器从这里获取值或写入值。

微处理器负责执行应用程序,并从RAM中获取要执行的应用程序以及相关联的数据,包括了显示到屏幕上的数据和用户输入的数据。

二、变量

显式地指定用于存储的内存单元的地址,如578,容易出错,因此产生了变量。

1.声明变量

variable_type variable_name;

variable_type variable_name= initial_value;

变量类型向编译器指出了变量可存储的数据的性质,变量名替代了变量值在内存中的存储地址。

可声明并初始化多个类型相同的变量。

如:int FirstNumber=0,SecondNumber=0,Multiplication=0;

可在开头声明变量,也可在需要时再声明变量。

#include <iostream>
using namespace std;
int main(){
	cout << "----两数相乘----" <<endl;
	cout << "输入第一个数字:";
	int FirstNumber = 0;
	cin >> FirstNumber;
	cout << "输入第二个数字:";
	int SecondNumber = 0;
	cin >> SecondNumber;
	int MultiplicationResult = FirstNumber * SecondNumber;
	cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl;
	return 0;
}

程序中声明了FirstNumberSecondNumber变量,用于临时存储用户输入的数字;

通过设置变量,程序员可以使用对人类明了的名称,把将变量关联到地址以及创建RAM访问指令的工作留给编译器做。

注:a、变量名可包含字母和数字,但不能以数字开头,变量名不能包含空格和算数运算符,可使用下划线,不能是保留的关键字(如return)。

b、存储在变量中的数据被存储在内存中。

2.变量的作用域

2.1 局部变量

#include <iostream>
using namespace std;
void MultiplyNumber(){
	cout << "----两数相乘----" <<endl;
	cout << "输入第一个数字:";
	int FirstNumber = 0;
	cin >> FirstNumber;
	cout << "输入第二个数字:";
	int SecondNumber = 0;
	cin >> SecondNumber;
	int MultiplicationResult = FirstNumber * SecondNumber;
	cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl;
}
int main(){
	//调用函数
	MultiplyNumber();
	return 0;
}

注意:不能在函数MultiplyNumber()外调用FirstNumber和SecondNumber变量,因为这些变量的作用域是局部的,即从声明它的语句开始到当前函数的末尾。

函数结束后,将销毁所有局部变量,并归还它们占用的内存。

不同函数中声明的变量为独立的实体,名称可相同,但作用域不同。

2.2 全局变量

#include <iostream>
using namespace std;
//全局变量
int FirstNumber = 0;
int SecondNumber = 0;
int MultiplicationResult=0;
void MultiplyNumber(){
	cout << "----两数相乘----" <<endl;
	cout << "输入第一个数字:";
	cin >> FirstNumber;
	cout << "输入第二个数字:";
	cin >> SecondNumber;
	MultiplicationResult = FirstNumber * SecondNumber;
	cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl;
}
int main(){
	//调用函数
	MultiplyNumber();
	cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl;
	return 0;
}

在函数外部声明的变量为全局变量。

虽然MultiplicationResult的值在MultiplyNumber()中获得,但仍可在main()中使用。

3.c++变量类型

3.1、bool布尔类型

true和false

直接赋值:

bool A=false;

结果为布尔类型值的表达式:

bool D=(User=="yes");

3.2 char字符型

char UInput="Y";

注:表示内存空间容量大小的单位是位和字节。位的取值为0或1;字节可以包含字符的数字表示。

示例中使用字符数据时,编译器把字符转换成可存储到内存中的数字表示。“Y”的ASCⅡ码为89,因此编译器在分配给UInput的内存空间中存储89.

4.常量

定义常量后,就不能修改它的值。

与变量一样,常量占用内存空间,并使用名称标识为其预留的空间的地址,但不能覆盖该空间的内容。

总结

为何给变量赋初值?

有时候,需要根据变量的值做条件处理,未赋值的变量包含的内容是随机的。

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 如何理解C++ 临时变量的常量性

    1.认识临时变量的常量性 关于临时变量的常量性,先看一段代码. void print(string& str) { cout<<str<<endl; } //如此调用会报编译错误 print("hello world"); 在Linux环境使用g++编译,会出现: invalid initialization of non-const reference of type 'std::string&' from a temporary of typ

  • C++字符数组的输入输出和字符串结束标志使用讲解

    C++字符数组的输入输出 字符数组的输入输出可以有两种方法: 1) 逐个字符输入输出. 2) 将整个字符串一次输入或输出.例如有以下程序段: char str[20]; cin>>str; //用字符数组名输入字符串 cout<<str; //用字符数组名输出字符串 在运行时输入一个字符串,如: China 在内存中,数组str的状态如图5.9所示,在5个字符的后面自动加了一个结束符′\0′. 输出时,逐个输出字符直到遇结束符′\0′,就停止输出.输出结果为: China 如前所述

  • C++ 将字符串值赋给CHAR数组的实现

    我就废话不多说啦,大家还是直接看代码吧~ CHAR name[50]; strcpy(name, "tagname"); 补充:将char* 赋值给std::string的一些陷阱 这段时间,总是要使用char或者char* 赋值给std::string,踩了不少坑.于是写了个测试代码,如果你不想看我的代码,可以跳到下面直接看总结: #include <string> #include <iostream> using namespace std; int ma

  • C++处理输入字符串并转为数组的操作

    最近在做题的时候在处理输入时遇到一个令人头疼的问题,今天解决了和大家分享一下: 比如题目要求的输入为一行数,数与数之间用空格间隔开,数的个数未知,数也有正有负: 11 -2 65 7 那么如何把这个输入保存到数组a中,且数组a中的值为a[0]=11,a[1]=-2,a[3]=65,a[4]=7呢? 先看代码: #include <iostream> #include <stdio.h> using namespace std; int main() { int a[20]; int

  • C++中字符串以及数组和指针的互相使用讲解

    C++字符串与指针 在C++中可以用3种方法访问一个字符串(在第5章介绍了前两种方法). 用字符数组存放一个字符串 [例]定义一个字符数组并初始化,然后输出其中的字符串. #include <iostream> using namespace std; int main( ) { char str[]="I love CHINA!"; cout<<str<<endl; return 0; } 运行时输出: I love CHINA! 用字符串变量存放

  • C++变量,常量,数组和字符串详解

    目录 一.内存和寻址概述 二.变量 1.声明变量 2.变量的作用域 2.1 局部变量 2.2 全局变量 3.c++变量类型 3.1.bool布尔类型 3.2 char字符型 4.常量 总结 一.内存和寻址概述 可编程设备包含微处理器和一定数量的临时存储空间.临时存储器被称为随机存取存储器(RAM). RAM类似于宿舍里成排存物柜的存储区域,每个存物柜都有编号,即地址.要访问特定的内存单元,需要使用指令要求处理器从这里获取值或写入值. 微处理器负责执行应用程序,并从RAM中获取要执行的应用程序以及

  • Python 高级变量之字典和字符串详解

    目录 1.字典的定义 字典和列表的区别: 字典的基本使用 2.循环遍历 3.字符串的定义 4.字符串的常用操作 字符串 查找和替换 字符串 文本对齐演练 去除空白字符 字符串拆分和连接 5.字符串的切片 总结 1.字典的定义 dictionary(字典)是出列表以外 Python 之中 最灵活 的数据类型,字典统一可以用来 存储多个数据,通常用于存储 描述一个 物体 的相关信息: 字典和列表的区别: 列表 是 有序 的对象集合: 字典 是 无需 的对象集合: 字典用 { } 定义 字典使用 键值

  • python学习字符串驻留与常量折叠隐藏特性详解

    下面是Python字符串的一些微妙的特性,绝对会让你大吃一惊. 案例一: 案例二: 案例三: 很好理解, 对吧? 说明: 这些行为是由于 Cpython 在编译优化时, 某些情况下会尝试使用已经存在的不可变对象而不是每次都创建一个新对象. (这种行为被称作字符串的驻留[string interning]) 发生驻留之后, 许多变量可能指向内存中的相同字符串对象. (从而节省内存) 在上面的代码中, 字符串是隐式驻留的. 何时发生隐式驻留则取决于具体的实现. 这里有一些方法可以用来猜测字符串是否会

  • ajax响应json字符串和json数组的实例(详解)

    最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场景,以及前台的处理示例. 直接看代码. json字符串的后台响应 package com.ajax; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.serv

  • Java 生成随机字符串数组的实例详解

    Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List<String>之后,往其中添加十条随机字符串 2.每条字符串的长度为10以内的随机整数 3.每条字符串的每个字符都为随机生成的字符,字符可以重叠 4.每条随机字符串不可重复 将涉及到的知识有: String.StringBuffer.ListArray.泛型.Collections.sort.foreach.Random等相关知识,算是

  • C语言 array数组的用法详解

    目录 一维数组的创建与初始化 程序一: 程序二: 程序三 程序四(二维数组 - 二维数组 的 列 绝对不能 省略 ) 二维数组在内存中的存储 程序一 数组作为函数参数,怎么作? 实例:冒泡排序 数组名: 一维数组的创建与初始化 数组是一种相同类型元素的集合 程序一: #include<stdio.h> #include<string.h> int main() { 创建一个数组 int arr1[10];// [常量] 初始化 int arr[10]={1,2,3};不完全初始化,

  • java 方法与数组基础使用详解

    目录 一.方法的使用 1.方法的定义 2.方法重载 二.数组的定义和使用 1.数组的基本概念 (1)数组的创建 (2)数组的初始化 (3)数组的遍历 2.数组是引用类型(JVM的内存分布) 3.引用变量 4.数组拷贝函数 5.二维数组的for.each遍历 一.方法的使用 1.方法的定义 java中的方法就相当于C语言中的函数 方法的语法格式 //方法的定义 修饰符  返回值类型  方法的名称([参数类型 参数]){ 方法体代码: [return 返回值]: } [注意事项] 修饰符:现阶段直接

  • Go语言学习之数组的用法详解

    目录 引言 一.数组的定义 1. 语法 2. 示例 二.数组的初始化 1. 未初始化的数组 2. 使用初始化列表 3. 省略数组长度 4. 指定索引值的方式来初始化 5. 访问数组元素 6. 根据数组长度遍历数组 三. 访问数组元素 1. 访问数组元素 2. 根据数组长度遍历数组 四.冒泡排序 五.多维数组 1. 二维数组 2. 初始化二维数组 3. 访问二维数组 六.向函数传递数组 1. 形参设定数组大小 2. 形参未设定数组大小 3. 示例 总结 引言 数组是相同数据类型的一组数据的集合,数

  • 数据结构之数组Array实例详解

    数据结构之数组Array实例详解 数组Array 基本操作 Status InitArray(int dimm,...)//若维数dim和随后的各维长度合法,则构造相应的数组A,并返回OK Status DestroyArray() //销毁数组A Status Locate(va_list ap,int &off) //若ap指示的各下标值合法,则求出该元素在A中相对地址off Status Value(ElemType &e,...) //A是n维数组,e为元素变量,随后是n个下标值.

  • jquery 遍历数组 each 方法详解

    JQuery拿取对象的方式 $('#id') :通过元素的id $('tagName') : 通过元素的标签名 $('tagName tagName') : 通过元素的标签名,eg: $('ul li') $('tagName#id): 通过元素的id和标签名 $(':checkbox'):拿取input的 type为checkbox'的所有元素: Eg: <input type="checkbox" name="appetizers" value="

随机推荐