C语言基础入门

257 阅读3分钟

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战

变量名的使用

变量名规则

  • 由大写字母、小写字母、数字、下划线
  • 不能以数字开头
  • 不能是 int、return  等有特定含义的保留字

除此之外,为了让程序容易背人理解,我们应该给变量名称赋予一个实际的意义

如:

  • year 表示年
  • month 表示月
  • weather 表示天气

变量的作用域

任何我们在程序中要使用的变量,都需要在使用前先被声明。

一个变量可以在变量声明语句之后、包裹了它的声明语句的最内一层 {} 之内被使用,它的这个可以被使用的范围被称为变量的 作用域(scope)  。

在同一作用域内不能存在重名的变量(否则在作用域内使用时就分不清指代的是哪一个变量了),如果多个变量名相同的变量的作用域如果有重叠的部分,则程序在编译时会发生“重复声明(redeclaration)”的错误。

我们可以简单的理解一个变量的 作用域(scope) 一般可以被界定为变量声明语句之后、包裹了它的声明语句的最内一层 {} 之内。

例如下图中,对于变量 alpha,图中的绿色标记了包裹了它的声明语句的最内一层 {} 所在的区域;而黄色的剪头标记出了自它声明后,它的实际作用域范围(也就是作用域)。

image.png

变量与格式化输出printf

print(打印)f(format 格式)

如果传入一个不带任何变量的字符串,那么这个格式就是一个纯粹的字符串

如果我们需要再字符串中嵌入一些变量,那么我们嵌入占位符后printf函数的第一个参数就会被视为我们需要的格式

那么我们常用的修饰变量的类型有哪些呢?相对应的用于格式化输出的占位符又有哪些呢?

数据类型关键字说明
整数型int反应及其中整数的自然长度
字符型char占1字节,可存一个字符
单精度浮点数型float用于存储单精度的实数
双精度浮点数型double用于存储双精度的实数,平时更常用

格式化输出

例如:

// printf中的第一个参数中有%开头的格式占位符(这里如%c%d)
//嵌入了格式化占位符后的printf函数的第一个参数就会被视为我们所需要的格式,
//后续的参数之会与格式占位符对应。
//在这里,输出时个是参数中的%c会被alpha的值替换;%d会被number的值所替换
printf("%c is %dst letter", alpha, number);

格式占位符

数据类型及显示占位符占位符来源单词首字母示例数据
有符号整数型%d or %idigit和interger-392
字符型%ccharacterA
无符号整数型%uunsigned392
浮点数%f or %Ffloat39.2
双精度浮点数%lfdouble39.2000
科学计数法浮点数%e or %Eexponent3.9265e+2
实数(不现实无异议0)%g or %G39.2和1.2e+02
内存地址%ppointerb8000000
字符串%sstringsample

基本变量类型

int、 float、 double可以被修饰

  • short修饰的整数型变量的存储位数会更小,响应的可存整数范围也就较小
  • long修饰则会用更多的存储位数,能存在整数范围也不小于int

无符号的整数unsigned int

  • unsigned可以用来修饰int,告诉计算机"这个整数不需要留出以为来存储符号,所有的位数都可以拿来存储数字"