当前位置: 首页 > news >正文

C语言基础要素(007):使用变量

定义变量的同时可以给定一个值,这叫初始化变量;未初始化的变量,其值在程序运行时是不确定的。变量在定义之后可以多次设置值,这称为赋值。定义使得变量从无到有,而赋值则改变已有变量的状态。变量只能被初始化一次,但可以进行多次赋值,这两种操作均是通过赋值运算符(=)执行的。

  • 变量初始化语法:变量类型 变量名 = 表达式;
  • 为变量赋值语法:变量名 = 表达式;
char c = 'x';       // 定义并初始化
int width = 200;    // 定义并初始化
float sx;           // 定义未初始化(值不确定)
sx = 3.14;          // 赋值(值已确定)
sx = 6.282;         // 赋值(值已改变)

在初始化或赋值时,我们给了变量一个具体的值,如 ‘x’、3.14、200等,像这种通过字面表达就能知道其值的数值,称为字面量

printf("glimix.com");   // glimix.com 是一个字面量
int age = 19;           // 19 是一个字面量

可以在一行代码中同时定义并初始化同一类型的多个变量,变量之间用逗号分隔;但作为一个良好的实践,并不建议这样做。

int a1 = 3, b1, c1 = 8;   // ok:    定义3个int变量,只有 a1、c1 被初始化
int a2 = 3, char c2 = 9;  // error: a2、c2 是类型不同型(单条语句只能定义同一类型的变量)
int a3 = 3; char c3 = 9;  // ok:    a3 定义后是分号,表示语句结束;这里,一行书写了两条定义语句。

可以将变量想像为一个盒子:

  • 向盒子内放入一个物体相当于赋值操作。
  • 盒子仅能存放一个物体,后续放入时,前一个物体被丢弃,即前一个变量值被覆盖。
  • 盒子只能存放同一类型或能转换到此类型的物体。
  • 盒子可以重复使用,即多次赋值。
int a = 3;  // 新买了一个盒子,出厂自带3
a = 9;      // 数据3被挤出去,9进入到盒子。
a = 0;      // 盒子重复使用,9被挤出,0进入到盒子。

输出变量

输出变量时要根据变量的类型使用相应的格式控制符,char、int、double 这三种类型的变量输出格式符分别是: %c、%d、%f。一开始我们可能记不清格式符是%d还是d%时,此时只需要记住:特殊的字符在前面!符号%与字母d相比较,%比较特殊,因此它在前面,记作%d而非d%。输出这三种类型的变量值可以使用如下代码:

printf("letter: %c\n", c);
printf("width: %d\n", width);
printf("pi: %f\n", pi);

这是我们第一次扩展使用printf函数。printf函数的第一个参数是一个用双引号扩起来的字符串,它也叫格式化字符串。以前我们只是简单的输出文本,现在这个字符串中有了格式控制符,因此,它成了真正意义上的格式化字符串。当这个字符串有1个格式控制符时,你需要在格式化字符串结束后,加上逗号(,),然后是要输出的变量或表达式,多个变量时,以此类推;对于非格式控制符或转换字符则按原样输出。

printf("%c %d %f\n", c, width, pi); // 一次使用3个格式控制符输出3个变量
printf("%c,%d\n", 'x', width); // 输出字面量x(虽然没有必要)与变量width

当输出变量时如果数据类型与格式符不匹配,可能会得到你想要的结果,也可能会出错,这取决于你的使用目的。下面的代码,在合理的数值范围内,使用%d格式符输出char类型,便得到了字母对应的ASCII码值,因为char类型事实上是一种小整型。

char d = 'd';
printf("letter: %c ==> ascii: %d\n", d, d);

示例程序

#include <stdio.h>

int main()
{
    char letter = 'x';
    int width = 200;

    double pi;	   // pi变量在定义时没有赋予初值,pi值在这里是不确定的。
    pi = 3.141592; // 使用赋值运算符把3.141592赋予pi变量。

    printf("letter: %c\n", letter);
    printf("width: %d\n", width);
    printf("pi: %f\n", pi);

    printf("\n");

    char d = 'd';
    printf("letter: %c ==> ascii: %d\n", d, d);
    d = 65;
    printf("number: %d ==> letter: %c\n", d, d);

    return 0;
}

在这里插入图片描述

练习

  1. 使用一行代码运用多个格式控制符输出一组变量。
  2. 打印一个未初始化、也没赋值的变量,看看是什么结果。
  3. 测试printf函数,当格式化字符串中有多个控制符,但少给1个参数时的输出情况。
  4. 定义5个变量,初始值依次为 72、101、108、108、111,使用 %c 格式符打印结果。

相关文章:

  • 自然语言处理NLP入门 -- 第十节NLP 实战项目 2: 简单的聊天机器人
  • uniapp 系统学习,从入门到实战(六)—— 样式与布局
  • [思考记录]AI时代下,悄然的改变
  • 大白话前端性能优化方法的分类与具体实现
  • Python 科学计算生态入门 2 - NumPy 基础与示例
  • Numpy基础知识
  • Highcharts 配置语法详解
  • redis repl_backlog_first_byte_offset 这个字段的作用
  • 安装 Windows Docker Desktop - WSL问题
  • NAT 代理服务 内网穿透
  • 【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
  • 详解ESP32使用select函数来监听串口数据
  • 99分巧克力
  • Python可视化大框架的研究与应用
  • Python大战Java:AI时代的编程语言‘复仇者联盟‘能否换C位?
  • Uniapp开发微信小程序插件的一些心得
  • AI Agent 定义与核心要素详解
  • 二、双指针——5. 移动零
  • SQLAlchemy系列教程:SQLAlchemy快速入门示例项目
  • 曹操智行构建国内首个全域自研闭环智驾生态
  • 英文网站制作费用/公司如何在百度宣传
  • html5做网页/惠州百度关键词优化
  • 甘肃做网站价格/网络推广公司是干嘛的
  • 不建网站如何做淘宝客/2024年最新一轮阳性症状
  • 网站开发是什么职位/各种资源都有的搜索引擎
  • 做高档衣服的网站/上海优化价格