编程菜鸟到大佬之路:C语言程序(二)

第二天学习精要

变量和数据类型


什么是变量

  • 变量就是一个代号,程序运行时系统会自动为变量分配内存空间,于是变量就代表了系统分配的那片内存空间,对变量的访问,就是对其代表的内存空间的访问。

  • 变量有名字和类型两种属性,不同变量的名字就对应了内存中的不同地址(即不同位置),而变量的类型,决定了一个变量占用多少个字节

  • 在C++语言中,变量要先定义,然后才能使用。“使用”有时也称为“引用”。读取或修改一个变量的值,都叫使用这个变量。 定义变量的语句,要出现所有使用该变量的所有语句之前

变量的定义

  • 类型名 变量名1, 变量名2, ……,变量名n;

  • 例如:int number, price; //定义整型变量 number和price。

  • 一个变量不能定义两次

变量的命名规则

  • 变量由大小写字母、数字和下划线构成,中间不能有空格,长度不限,不能以数字开头。

  • 变量名是大小写相关的,name 和 Name 是不同的两个变量。

  • 变量名不能和C++系统的保留字重复。

  • “数据类型”能够说明一个变量表示什么样的数据(整数,实数,还是字符等)。不同数据类型的变量,占用的存储空间大小不同。除了基本数据类型外,C++还允许程序员自定义数据类型。

C++的基本数据类型

  • int,long,short,char的最高位(最左边)是符号位,为1则表示负数,为0表示非负数

  • 一个字节等于8个比特,即8个二进制位
    在这里插入图片描述

用sizeof运算符求变量占用字节数

  • sizeof(变量名)和sizeof(类型名)能够得到某个变量或某一类型变量占用的字节数
# include <iostream>
# include <cstdio>
int main()
{
	int n1 = 10;
	double f;
	char c;
	printf("%d, %d, %d, %d", sizeof(n1), sizeof(short), sizeof(double), sizeof(c));
	return 0; 
}

// 输出4,2,8,1

变量的初始化

  • 变量在定义的时候,可以给它指定一个初始值,这叫变量的初始化。

  • 没有初始化的变量,其值一般是不确定的。

有符号整数和无符号整数

  • short、int、long、long long 类型的变量,可以表示正数,也可以表示负数,称为有符号的整数类型。

  • unsigned short,unsigned int,unsigned long,unsigned long long类型的变量,只会被看作非负数,称为无符号的整数类型。

有符号整数的表示方式

  • 将最左边的位(最高位)看作“符号位”。符号位为0,则表示是非负数,其绝对值就是除符号位以外的部分;符号位为1,则表示是负数,其绝对值是所有位取反(0变1,1变0)后再加1

  • 将一个负整数表示为二进制的方法:

    • 设置符号位为1。
    • 其余位等于绝对值取反再加1。

数据类型的自动转换

  • 有些不同的数据类型之间是相容的,可以互相赋值,这叫数据类型的自动转换。

字符类型到整型的互相转换

  • 字符型数据可以转换成整型数据。

  • 整型数据也可以转换为字符型数据,但只会留下最右边的一个字节(第0位
    到第7位),其他字节丢弃

// 类型自动转换示例
# include <iostream>
# include <cstdio>
using namespace std;

int main()
{
	int n1 = 1378;	// 1378的十六进制形式是0x562
	short n2;
	char c = 'a';
	double d1 = 7.809;
	double d2;
	n2 = c + 1;	// n2变为98, 97是'a'的ASCII码
	printf("c = %c, n2 = %d\n", c, n2);	// 输出c=a, n2=98
	c = n1;	// n1是0x562, 0x62被当做ASCII码赋值给c, c变为'b'
	printf("c = %c, n1 = %d\n", c, n1);	// 输出 c=b, n1=1378
	n1 = d1;	// d1=7.809, 去掉小数部分后赋值给n1, n1变为7
	printf("n1 = %d\n", n1);	// 输出n1=7
	d2 = n1;	// d2变为7
	printf("d2=%f\n",d2);	//输出 d2=7.000000
	return 0;	 	
} 

常量


什么是常量

  • 常量就是在程序运行过程中值不会发生改变,而且一眼就能看出其值的量。

  • 常量也可以分成整型,浮点型,字符型,字符串,符号常量。

整型常量

  • 十进制整型常量。

  • 十六进制整型常量,以“0x”开头,十六进制数中,用A(a)表示10,B(b)表示11 … F(f)表示15。

  • 一个十六进制位,正好对应于4个二进制位

  • 八进制整型常量,以0开头。

字符型常量

  • 字符型常量表示一个字符,用单引号括起来。

  • 字符型常量可用于给char 和unsigned char类型的变量赋值。

  • 字符型常量和变量都占一个字节,内部存放的是字符的ASCII编码,ASCII编码是一个0~255的整数

  • 字母和数字的ASCII十进制编码:

    • ‘0’~’9’: 48 ~ 57
    • ‘A’~’Z’: 65 ~ 90
    • ‘a’~‘z’: 97 ~ 122
  • C++中还有一类字符常量,以’‘开头,如’\n’、 ‘\r’、 ‘\t’等,称为“转义字符”。所谓“转义”就是指’'后面的字符被转成别的含义。
    在这里插入图片描述

字符串常量

  • 字符串常量是用双引号括起来的一串字符。

  • “” 也是一个字符串常量,它代表一个空串,即不包含任何字符的字符串。

  • “a” 和‘a’ 是不一样的,前者是只有一个字符的字符串,后者是一个字符,不能用前者给一个char类型的变量赋值。

  • 字符串常量里可以包含转义字符。

符号常量

  • 为了阅读和修改的方便,常用一个由字母和数字组成的符号来代表某个常量,这样的常量就叫符号常量:#define 常量名 常量值

  • 定义之后,程序中所有出现“常量名” 的地方,就等价于出现的是“常量值”。

  • “常量名” 的命名规则和变量相同,“常量值” 则写什么常量都可以

  • 尽量少使用数值常量,二用符号常量替代它,这样便于修改

猜你喜欢

转载自blog.csdn.net/faker1895/article/details/82875812