C++笔记(二)-变量与常量

变量与常量

内存与寻址的概念
计算两数的乘积:

#include<iostream>
usin namespace std;
int multiply(){
int x=0;
int y=0;
cout<<"input the first number:"<<endl;
cin>>x;
cout<<"input the second number:"<<endl;
cin>>y;
return x*y;
}

int main(){
cout<<multiply()<<endl;
return 0;
}

1.变量

1.1命名规则

不能以数字开头;
可以包含数字和字符
不能包含空格和算术运算符(+、-、*、/);
可使用下划线_;
不能是保留的关键字。

1.2作用域

1.3全局变量

不在函数内部申明的变量为全局变量,可以在任何函数中赋值,因此其值可能出乎意料,谨慎使用。

1.4.变量类型

一字节=8bit;

类型占位取值范围
bool1字节true/false
char1字节[-2^7, 2^7-1]、[0, 2^8]
unsigned char1字节[0,2^8]
signed char1字节[-2^7, 2^7-1]
int4字节[-2^31, 2^31-1]
unsigned int4字节[0, 2^32]
signed int4字节[-2^31, 2^31
short int2字节[-2^15, 2^15-1]
unsigned short int2字节[0-2^16]
signed short int2字节[-2^15, 2^15-1]
long int8字节[-2^63, 2^63-1]
unsigned long int8字节[0-2^64 ]
signed short int8字节[-2^63, 2^63-1]
float4字节
double8字节
long double16字节
wchar_t2/4字节
1.4.1 bool型变量
bool flag1=false;
bool flag2=(flag1==true);
1.4.2 char变量

存储单个字符char c='c';

1.4.3有符号数和无符号数

有无符号即有无正负.

1.4.4 浮点类型

声明一个可存储小数值的float变量float Pi=3.14;;声明一个双精度double浮点数double Pi=22/7;

1.5sizeof确定变量的长度

变量的长度是指:在声明变量时,编译器要预留多少内存用于存储赋给该变量的数据。
sizeof是运算符,并不是函数调用,不允许程序员定义重载。输出单位为字节。

2.常量

定义常量后,就不能修改它的值。
字面常量;
const声明的常量;
enum声明的常量;
#define定义的常量

2.1 字面常量

std::cout<<"hello world!"<<std::endl;

hello world!是一个字面常量。

2.2 const声明常量

# include <iostream>
using namespace std;

int main(){
	const double Pi=22.0/7;
	cout<<"the value of Pi is "<<Pi<<endl;
	return 0;
}

如果希望变量的值不被修改,就将其声明为常量。通过关键字const可以避免多名程序员合作时被无意修改。

使用:申明在编译期间长度固定的静态数组。

2.3 枚举常量

变量只能取一组特定的值。

enum RainBowColors{
	violet=0,
	indigo,
	blue,
	green,
	yellow,
	orange,
	red
};
RainBowColors MyRainBowColors=blue;

在申明枚举常量时,编译器将把枚举值转换成整数,每个枚举值都比前一个大1,可以自定义初始值,否则自动默认为0。

# include <iostream>
using namespace std;
enum RainBowColors{
	violet,
	indigo,
	blue=20,
	green,
	yellow=0,
	orange,
	red
};
RainBowColors MyRainBowColors=blue;

int main(){
	RainBowColors MyRainBowColors=violet;
	cout<<"the value of violet is "<<MyRainBowColors<<endl;
	MyRainBowColors=indigo;
	cout<<"the value of indigo is "<<MyRainBowColors<<endl;
	MyRainBowColors=blue;
	cout<<"the value of blue is "<<MyRainBowColors<<endl;
	MyRainBowColors=green;
	cout<<"the value of green is "<<MyRainBowColors<<endl;
	MyRainBowColors=yellow;
	cout<<"the value of yellow is "<<MyRainBowColors<<endl;
	MyRainBowColors=orange;
	cout<<"the value of orange is "<<MyRainBowColors<<endl;
	MyRainBowColors=red;
	cout<<"the value of red is "<<MyRainBowColors<<endl;
	return 0;
}

输出:
the value of violet is 0
the value of indigo is 1
the value of blue is 20
the value of green is 21
the value of yellow is 0
the value of orange is 1
the value of red is 2

2.4 #define定义常量

#define Pi 3.14

预处理器宏,让预处理器将随后出现的所有Pi都替换成3.14,预处理器将执行文本替换,而不是智能替换。编译器既不知道也不关心常量的类型。

问题

问:在C++中,可以申明无符号整型变量,其取值只能是零或正整数,如果一个unsigned int变量的值为0,将其减一的结果将如何?
答:导致环绕,输出最大取值。

# include <iostream>
using namespace std;

int main(){
	unsigned short int a=0;
	a=a-1;
	cout<<"the value of a is "<<a<<endl;
	return 0;
}
输出:
the value of a is 65535

因此,在变量值有可能取到负值的情况下,就不应该将其类型指定为unsigned。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值