109 lines
5.2 KiB
Markdown
109 lines
5.2 KiB
Markdown
|
---
|
|||
|
title: Variables in C
|
|||
|
localeTitle: C中的变量
|
|||
|
---
|
|||
|
# 在C中使用变量
|
|||
|
|
|||
|
现在您知道数据类型的选项是什么。让我们在这里用一个简单的例子来应用它:
|
|||
|
|
|||
|
```C
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
int main(void) {
|
|||
|
int my_first_variable = 12;
|
|||
|
double my_second_variable = 983.9;
|
|||
|
|
|||
|
printf("My int is %i\n", my_first_variable);
|
|||
|
printf("My double is %f\n", my_second_variable);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
这里有很多新东西要看!你已经看过`#include`和`int main(void)` ,所以不值得一试。新的是`int my_first_variable = 12;` 。
|
|||
|
|
|||
|
从前面开始,您应该记得`int`允许我们存储整数值。在`int`出现`my_first_variable` 。这是一个变量 - 它可以存储值,您可以更改其中存储的值。我们从一个声明开始,我们告诉计算机这个变量的初始值是12.在我们尝试使用它之前告诉计算机我们想要一个变量是很重要的。否则,该变量将不存在,并且当您尝试告诉它使用不存在的变量时,编译器将不知道该怎么做。
|
|||
|
|
|||
|
下一行是`double my_second_variable = 983.9` 。与之前类似的结构应该清楚地表明,您正在告诉计算机创建一个名为“我的_第二个_变量”的变量,该变量可以保存`double`精度值,并且您希望将其设置为983.9。
|
|||
|
|
|||
|
变量的实际名称并不重要。它可以是你想要的任何东西,只要它不是C为实际语言保留的任何单词,它只能包含数字和字母,从不包含任何空格。变量名称不能以数字开头。按照惯例,C使用明确的变量名称替换下划线表示空格。变量也可以是camelCase,如下所示:
|
|||
|
|
|||
|
```C
|
|||
|
double myFirstVariable = 983.9
|
|||
|
```
|
|||
|
|
|||
|
事实上,在其他语言中也是如此。但是,在C中通常不会这样做。
|
|||
|
|
|||
|
创建变量后,我们开始实际使用它们:
|
|||
|
|
|||
|
```C
|
|||
|
printf("My int is %i\n", my_first_variable);
|
|||
|
printf("My double is %f\n", my_second_variable);
|
|||
|
```
|
|||
|
|
|||
|
这与您之前使用的printf()相同,但现在它有一些不同的功能。首先,请注意括号内现在有两件事:要打印到屏幕上的文本和变量。另请注意`%i`和`%f` 。这被称为_格式说明符_ ,用于指定应该打印的格式。每当printf()遇到其中一个时,它将尝试将给定的变量插入到该点。
|
|||
|
|
|||
|
因为我们的变量的数据类型以几种不同的方式在计算机中表示,所以C有几种不同的方式来显示它们:
|
|||
|
|
|||
|
数据类型|格式说明符 ---------------- | ------------------ char | %c,或%hhi在签名时作为数字打印,%hhu在未签名时打印为数字 简短| %hi,或未签名的%hu int | %i,%d也可以使用 长| %li,或未签名时的%lu 长久的%lli,或未签名时的%llu 漂浮| %F 双| %F 长双| %如果 unsigned int | %鲁
|
|||
|
|
|||
|
要打印变量,您必须具有格式说明符,然后是要格式化的变量。几个格式说明符可以在同一个printf()中一起使用:
|
|||
|
|
|||
|
```C
|
|||
|
printf("%i and %f", my_first_variable, my_second_variable);
|
|||
|
```
|
|||
|
|
|||
|
为了扫描变量,您必须具有格式说明符,然后是变量的地址(通过在变量名称前加上'&'符号表示)作为输入。几个格式说明符可以在同一个scanf()中一起使用:
|
|||
|
|
|||
|
```C
|
|||
|
scanf("%i and %f", &my_first_variable, &my_second_variable);
|
|||
|
```
|
|||
|
|
|||
|
现在让我们开始更改变量中的值。以下是与之前相同的示例,但还有更多行:
|
|||
|
|
|||
|
```C
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
int main(void) {
|
|||
|
int my_first_variable = 12;
|
|||
|
double my_second_variable = 983.9;
|
|||
|
|
|||
|
printf("My int is %i\n", my_first_variable);
|
|||
|
printf("My double is %f\n", my_second_variable);
|
|||
|
|
|||
|
my_second_variable = -18.2 + my_first_variable;
|
|||
|
|
|||
|
printf("Now my double is %f\n", my_second_variable);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
现在有一行读取`my_second_variable = -18.2 + my_first_variable;` 。此等式为左侧的变量分配新值。每当分配一个新值时,它所分配的变量必须始终位于左侧,并且必须始终在那里。您的程序将找到右侧的结果,并将其分配给左侧的变量。在这种情况下,我们将_第一个_变量添加到-18.2。我的_第一个_变量是12,-18.2 + 12是-6.2,所以我的_第二个_变量在这一步之后变为-6.2。我们将在稍微进一步学习数学!
|
|||
|
|
|||
|
## 关于花车和双打的更多信息
|
|||
|
|
|||
|
当打印出浮点数和双精度数时,很多时候我们需要小数点后的精度。如果我们有
|
|||
|
|
|||
|
```C
|
|||
|
float var1 = 15.3;
|
|||
|
printf("%f");
|
|||
|
```
|
|||
|
|
|||
|
我们得到`15.300000` 。所以,假设我们只想要小数点后的两个位置给我们`15.30` 。我们会使用%.2f。请注意,我们在我们想要的小数位数前面使用小数点后跟f,表示我们要打印float或double。
|
|||
|
|
|||
|
# 变量的名称
|
|||
|
|
|||
|
* 您可以在名称中使用的唯一字符是字母字符,数字和 下划线(\_)字符。
|
|||
|
* 名称中的第一个字符不能是数字。
|
|||
|
* 大写字符被视为与小写字符不同。
|
|||
|
* 您不能将C关键字用于名称。
|
|||
|
|
|||
|
# 在你继续之前......
|
|||
|
|
|||
|
## 回顾
|
|||
|
|
|||
|
* 变量需要在使用之前创建。
|
|||
|
* 变量按以下格式创建: `datatype variable_name = number` 。
|
|||
|
* 格式说明符允许打印变量。
|
|||
|
* 等号`=`允许将值分配给变量。
|