2.1.3 变量赋值assignment与初始化initialization

一、变量赋值
和数学不同,a=b在数学中表示关系,即a和b的值一样;而在程序设计中,=叫赋值运算符,a=b表示要求计算机做一个动作:将b的值赋给a。含有运算符的式子被称为表达式(expression)。
关系是静态的,而动作是动态的。在数学中,a=b和b=a是等价的,而在程序设计中,两者的意思完全相反。

二、变量初始化
<类型名称><变量名称>=<初始值>;

例如

点击查看代码
int price = 0;
int amount =100;
组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如:
点击查看代码
int price = 0,amount = 100;
一行代码当中如果有多个变量定义的时候,不能用一个办法去把一个值赋给所有的变量,必须一个一个地去给每一个变量赋初始值。
点击查看代码
int price = 0;
printf("请输入金额(元):");scanf("%d",&price);
int change = 100-price;
printf("找您%d元。\n",change);
当赋值发生在定义变量的时候,就是变量的初始化。(就像上面程序中的第1、3行那样。)

如果没有初始化?
虽然C语言并没有强制要求所有的变量都在定义的地方做初始化,但是所有的变量在第一次被使用(出现在赋值运算符的右边)之前应该被赋值一次,而赋值的过程就完成了初始化。
如果变量没有初始化,直接放到右边去用(如下程序中的变量i),编译后会报错:

点击查看报错信息
[Warning] 'i' is used uninitialized in this function [-Wuninitialized]
点击查看代码
#include <stdio.h>
int main()
{
  int i;
  int j;
  j= i+10;
  printf("%d\n",j);
  return 0;
}

三、变量类型
C是一种有类型的语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。
数据类型决定了在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。

一个程序中可以有很多个变量,变量是放数据的,有数据需要存放的时候,就可以定义一个变量。
不同版本的C对于变量定义的位置,要求不同:
C99允许在程序的任何地方定义变量,只要它未被使用过,无论是放在赋值号的左边话是赋值号的右边,都可以对变量进行定义。
传统的ANSI C只能在代码开头的地方定义变量。一旦开始了定义变量操作以外的其他操作,就不能进行变量定义的操作。
image

四、如何输入数字(计算机如何读取用户输入)
使用scanf()函数,读整数

点击查看代码
scanf("%d", &price);

要求scanf这个函数读入下一个整数,
读到的结果赋值给变量price
price前面的&

(printf()也是一个函数,是输出;scanf()是输入;两个函数名称后面的f,即format,格式化;即格式化地输入、格式化地输出)
printf前面需要有一个字符串,格式字符串;后面接变量
scanf前面也需要有一个字符串,格式字符串,后面变量要加&(不加&会导致程序奔溃,读取不到变量内数据)(涉及指针的内容,后续详解学习)

赋值assignment,可赋值assignable。
思考问题:需要的是用户输入数字(整型),但是用户输入的是其他类型的数据,程序如何处理?

posted on 2026-10-13 10:21  Tobetop  阅读(2)  评论(0)    收藏  举报

导航