C语言基础

您所在的位置:网站首页 c语言锁定变量不变 C语言基础

C语言基础

2023-09-18 14:50| 来源: 网络整理| 查看: 265

二、变量 2.1 变量基本概述

变量是程序的基本组成单位,变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,从而通过变量名可以访问到变量(值)。

变量应该有名字,并在内存中占据一定的存储单元;变量名和变量值有不同的含义;变量名实为一个符号地址 在这里插入图片描述

2.1.1 变量的使用步骤: //(1)声明变量: int num; //(2)赋值: num = 60; // (3)使用: printf("num=%d", num); // (4) 变量声明与赋值一步到位: int num = 60; 2.1.2 变量的使用注意事项:

(1)变量表示内存中的一个存储区域(不同的数据类型,占用的空间大小不一样); (2)该区域有自己的名称和类型; (3)变量必须先声明,后使用; (4)该区域的数据可以在同一类型范围内不断变化; (5)变量在同一个作用域内不能重名; (6)变量三要素(变量名+值+数据类型)。

2.2 变量的数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(使用字节多少表示)。数据类型决定了其取值范围,及可以进行的操作。 在这里插入图片描述

注意:

C 语言没有字符串类型,用字符数组表示字符串;在不同系统上,部分数据类型字节长度不一样。 2.2.1 字节和位 变量名实为一个符号地址内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1 2.3 整型

各种类型的存储大小与操作系统、系统位数和编译器有关。 整型的类型

类型存储大小值范围char1字节 − 2 7 到 2 7 − 1 -2^7 到 2^7-1 −27到27−1unsigned char1字节0 到 2 8 − 1 2^8-1 28−1signed char1字节 − 2 7 到 2 7 − 1 -2^7 到 2^7-1 −27到27−1int(signed int)2字节或4字节{ − 2 15 到 2 15 − 1 -2^{15}到2^{15}-1 −215到215−1} 或 { − 2 31 到 2 31 − 1 -2^{31}到2^{31}-1 −231到231−1}unsigned int2字节或4字节{0到 2 16 − 1 2^{16}-1 216−1} 或 {0到 2 32 − 1 2^{32}-1 232−1}short(signed short)2字节{ − 2 15 到 2 15 − 1 -2^{15}到2^{15}-1 −215到215−1}unsigned short2字节{0到 2 16 − 1 2^{16}-1 216−1}long(signed long)4 字节{ − 2 31 到 2 31 − 1 -2^{31}到2^{31}-1 −231到231−1}unsigned long4 字节{ 0 到 2 32 − 1 0到2^{32}-1 0到232−1}

整数常量的表示方法: 在这里插入图片描述 注意:

整型数据的溢出;在整型常量后面加大写L或小写l,则告诉编译器,把该整型常量作为long类型处理。例:123L、0L;在整型常量后面加u,则按无符号整型方式存放,负数转换成补码再按无符号整型方式存放。 2.4 浮点型 类型存储大小值范围有效数字float单精度4字节(32位) 1.2 × 1 0 − 38 到 3.4 × 1 0 38 1.2\times10^{-38}到3.4\times10^{38} 1.2×10−38到3.4×10386~7double双精度8字节(64位) 2.3 × 1 0 − 308 到 1.7 × 1 0 308 2.3\times10^{-308}到1.7\times10^{308} 2.3×10−308到1.7×1030815~16long double 长双精度16字节(128位)18~19

浮点型注意事项: 3. 浮点型常量默认为double型,声明float型常量时,须后加‘f’或‘F’; 4. 浮点型常量有两种表示形式:十进制数形式 / 科学计数法形式 5. 通常情况下,应使用double型,更加精确。

数据类型按精度大小排序 在这里插入图片描述

2.4.1 数据类型的自动转换规则:

在这里插入图片描述

有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度最大的那种数据类型,然后再进行计算(如int型和 short型运算时,先把short转成int型后再进行运算);若两种类型的字节数不同,转换成字节数大的类型,若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型;在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边的类型将转换为左边的类型,如果右边变量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。 2.4.2 强制类型转换

将精度高的数据类型转换为精度小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。

强制类型转换的格式为:

(类型名)(表达式); //例如: double a = 1.13; int num = (int)a; //需注意,不是进行四舍五入,而是直接截断小数后的部分 (double)(1+2);

(1)强制类型转换操作并不改变操作数本身; (2)当进行数据的从精度高——>精度低,就需要使用到强制转换; (3)强转符号只针对于最近的操作数有效,往往使用小括号提升优先级。

2.5 字符型 2.5.1 概述

字符类型可以表示单个字符,字符类型是char,char是1个字节(可以存字母或者数字),多个字符称为字符串,在C语言中使用char数组表示,数组不是基本数据类型,而是构造类型。

(1)字符常量是用单引号 (") 括起来的单个字符。例如: char c= ‘a’; (2)C中还允许使用转义字符 ‘’ 来将其后的字符转变为特殊字符型常量。例如: char c3=‘\n’; '\n’表示换行符; (3)在C中,char的本质是一个整数,在输出时,是ASCII码对应的字符; (4)可以直接给char赋一个整数,然后输出时,会按照对应的ASCII字符输出; (5)char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码。

2.5.2 字符编码

字符和码值的对应关系是通过字符编码表决定的。字符型变量存储到计算机中,需要将字符对应的**码值(整数)**找出来,例如: 存储:字符 ‘a’ ----> 码值(97)----> 二进制 (1100001)---->存储() 读取:二进制(1100001) ----> 码值(97) ----> 字符 ‘a’ ----> 读取(显示)

2.5.3 字符串常量

字符串常量: 用**双引号("")**括起来的字符序列; 其储存为在每个字符串尾自动加一个 ‘\0’ 作为字符串结束的标志,如字符串 “hello” 在内存中为: 在这里插入图片描述

2.5.4 基本数据类型及其对应的限定符

在这里插入图片描述 说明:

(1)使用格式字符 %i 或 %d 以十进制显示整数值; (2)使用格式字符 %o 以八进制显示整数值;使用格式字符 %#o 在八进制之前显示一个前导零; (3)使用格式字符 %x 以十六进制显示整数值;使用格式字符 %#x 在十六进制之前显示一个前导 0x; (4)使用格式字符 %f 显示浮点数; (5)使用格式字符 %e 以科学计数法显示浮点数; (6)使用格式字符 %g 显示浮点数,使得输出格式最美观,输出 %f 或 % e 中较短的一个; (7)使用格式字符 %c 显示 char 变量的值,输出单个字符; (8)使用格式字符 %s 输出字符串;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3