一、了解计算机的内存
在编写程序前一定要了解计算机怎么存储程序需要处理的数据,为此必须了解计算机的内存。计算机执行程序时,组成程序的指令和程序所操作的数据都必须存储到计算机的某个地方,这个地方就是内存,也成为主内存,或者随机访问存储器(RAM)。
RAM:它是易失存储器,关闭PC后,RAM中的内容也会随之丢失。所以PC 把一个或多个磁盘驱动器作为其永久存储器,用来储存任何数据。
可以将ARM想象成一个井然有序的盒子,每个盒子都有两种状态,满为1,空为0。
因此每个盒子都代表一个二进制数,0或1。计算机有时用真或假表示他们,1是真,0是假。每个盒子称为一个位(bit),即二进制的缩写。
内存中的位又以8个为一组,每组的8位称作一个字节(byte),所以内存中最小的单位是bit,8个位组合成一组称为字节(byte),每个字节都有唯一的地址。
内存中的字节如下图所示:
内存中常用的单位有:千字节(KB),兆字节(MB),千兆字节(GB)。有些大型磁盘驱动器使用兆兆字节(TB),这些单位意义(或换算关系)如下:
1KB 是指 1024字节
1MB 是指 1024KB
1GB 是指 1024MB
1TB 是指 1024GB
为什么是1024?因为从0-1023总共1024个数字,这样的换算关系让计算机使用二进制更方便。
二、了解什么是变量
变量是计算机中一块特定的内存,它是由一个或则多个连续的字节所组成,一般是1、2、4、8或16字节。每个变量都有一个名称,可以用这个名称表示内存的这个位置,以提取它包含的数据或存储一个新数值。
变量命名的规则:可以使用字母数字或者下划线来命名,但是只能以字母或则下划线开头。
用变量写一个程序:
#include <stdio.h>
int main(void)
{
int salary;
salary = 10000;
printf("My salary is %d\n", salary);
return 0;
}
===>输出结果为:My salary is 10000
int salary;则是用来存放薪水的变量声明,变量名为:salary。
salary = 10000;为赋值语句,这里将数值10000赋值给变量salary。
使用更多的变量来写一个程序:
#include <stdio.h>
int main(void)
{
int brothers;
int brides;
brothers = 7;
brides = 7;
printf("%d brides for %d brothers\n", brides, brothers);
return 0;
}
===> 输出结果为: 7 brides for 7 brothers
注意:变量名是区分大小写的!brides 和BRIDES是两个不同的变量。
写一个用变量的值做一个简单计算的程序:
#include <stdio.h>
int main(void)
{
int total_pets;
int cats;
int dogs;
int ponies;
int others;
cats = 2;
dogs = 1;
ponies = 1;
others = 46;
total_pets = cats+dogs+ponies+others;
printf("We have %d pets in total\n", total_pets);
return 0;
}
===>输出结果为: We have 50 pets in total
三、变量与内存
整数变量类型有:
signed char 字节数:1字节
short int 字节数:2字节
int 字节数:4字节
long int 字节数:4字节
long long int 字节数:8字节
浮点数变量类型有:
float 字节数:4字节
double 字节数:8字节
long double 字节数:12字节
用浮点类型写一个算术运算程序
#include <stdio.h>
int main(void)
{
float radius = 0.0f;
float diameter = 0.0f;
float circumference = 0.0f;
float area = 0.0f;
float Pi = 3.14159265f;
printf("Input the diameter of the table: ");
scanf("%f", &diameter);
radius = diameter / 2.0f;
circumference = 2.0f*Pi*radius;
area = Pi*radius*radius;
printf("\nThe circumference is %.2f",circumference);
printf("\nThe area is %.2f\n", area);
return 0;
}
===> 程序输出为:Input the diameter of the table:6
The circumference is 18.85
The area is 28.27