C零基础课程-08-数值型变量的定义与使用

强类型语言与弱类型语言

C语言,是强类型的语言,对于每一个变量都有强制类型定义的要求。
而弱类型语言(如Python、Javascript)中,变量的类型不需要声明,程序运行过程中,根据环境的变化而自动转换变量类型。

C语言是一种强类型语言,我们今天学习数值型变量的定义与使用,其实在学习相关的C语言关键字。

关键字:与编译器沟通的桥梁

C89标准的关键字(32个):

我们已经知道,由编译器将C源码翻译为CPU能够识别执行的机器码,而编译器之所以能够读懂C源码的关键就在于关键字。C语言的关键字及其意义被嵌入在编译器中,编译器通过识别关键字来分析C语言源码代表的含义、是否合法。
关键字的地位非常高,自定义的变量名、函数名都不能与关键字重复。
问题:printf是关键字吗?
答:不是。

数值类型的定义及使用

与定义数值类型变量有关的重要关键字:

  • int(以及char、short、long)
  • double(以及float)
    以上的关键字,代表类型,我们可以使用它们,定义变量。

定义变量

<类型关键字> 标识符;
知识兔

标识符就是我们通常所见的变量名、函数名。在C语言中,合法的标识符要求是:

  • 以字母或者下划线开头
  • 后接若干个字母、数字、下划线
    此外,C语言中是区分大小写的
int main(int argc, char* argv[])
{
 int _Value = 5;
 int _Value123 = 100;
 double ____ValueDouble5 = 3.14;
 int Void /*void是关键字*/= 5;
 return 0;
}
知识兔

定义变量举例:

int main(int argc, char* argv[])
{
 int nValue1;
 int nValue2;
 int nValue3, nValue4;
 return 0;
}
知识兔
int main(int argc, char* argv[]){ double dbValue1, dbValue2; return 0;}

定义变量的同时初始化:

int main(int argc, char* argv[]){ double dbValue1 = 0, dbValue2 = 0; int nValue = 0; return 0;}

变量的赋值与引用:

#include <stdio.h>int main(int argc, char* argv[]){ int nValue = 0; nValue = 100; //赋值 printf("%d\r\n", nValue); //引用 nValue = 1234; printf("%d\r\n", nValue); return 0;}

C语言中整型数值的表示方法

C语言中,支持10进制、16进制、8进制的方式表示整型数值:

#include <stdio.h>int main(int argc, char* argv[]){ int nValue = 0; nValue = 100; nValue = 0x2C; //16进制 printf("%d\r\n", nValue); nValue = 044; //8进制 printf("%d\r\n", nValue); return 0;}

浮点变量

#include <stdio.h>int main(int argc, char* argv[]){ double dbValue = 3.14; printf("%f\r\n", dbValue); return 0;}

整型相关知识的扩充

int型变量是最具代表的整型变量,一个int变量占4个字节。还有其它的可以存储整型的变量类型,它们与int的主要区别在于所占大小不同(存储范围不同),如:

  • char:1字节
  • short: 2字节
    此外,还有关键字unsigned,指明该变量是否是无符号类型(不存储负数),如:
unsigned int uValue = 0; //uValue是无符号4字节整型unsigned char ucValue = 0; //ucValue是无符号1字节整型
#include <stdio.h>int main(int argc, char* argv[]){ char chValue = 5; short sValue = 5; return 0;}

浮点相关知识的扩充

C语言中的小数常量,默认都是8字节的,即对应了double类型。如果指定需要对应float类型(4字节)的小数常量,那么可以加上“f”后缀:

#include <stdio.h>int main(int argc, char* argv[]){ double dbValue = 3.14; //双精度浮点 float fltValue = 3.14f; //单精度浮点 return 0;}
计算机