《指针的编程艺术(第二版)》一第一章 内存的基本概念1.1 变量

    xiaoxiao2024-01-21  172

    本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第1章,第1.1节,作者 蔡明志,更多章节内容可以访问云栖社区“异步社区”公众号查看

    第一章 内存的基本概念

    指针的编程艺术(第二版)1-1 变量

    1-2 一维数组

    1-3 二维数组

    1-4 结构

    1-5 练习

    当程序定义一个变量时,编译程序根据其数据类型分配适当大小的内存给它,以便存储数据。这就如同地址一般,邮差根据收件人的地址,将信件投入正确的信箱。

    1.1 变量

    指针的编程艺术(第二版)程序以变量名称代表某一事项,就好比每一个人都有姓名一般。如果有人喊“蔡明志”,那我一定会说“到”,因为这个名字就代表我的意思。我们就从变量开始谈起。请参阅范例address-3。

    范例address-3

    /* address-3.c */ include <stdio.h> include <conio.h> int main() {   int x=100, y=200, z=300;   printf("x 变量的地址是 %p\n", &x);   printf("y 变量的地址是 %p\n", &y);   printf("z 变量的地址是 %p\n\n", &z);   printf("x 变量的内容是 %d\n", x);   printf("y 变量的内容是 %d\n", y);   printf("z 变量的内容是 %d\n", z);   getch();   return 0; }

    输出结果

    程序中有关x、y、z变量的地址,如下图所示。

    如果你想要知道变量所在内存的地址,只要在变量前加上地址运算符(&)即可。我们一定要确实了解每一表达式(expression)所表达的意思是什么,是变量所在的内存地址(address),还是变量值(value)。

    如果要使用scanf函数,从键盘输入数据给一个变量,需要注意哪些问题呢?我们以范例address-5来说明。

    范例address-5

    /* address-5.c*/ include <stdio.h> include <stdlib.h> int main() {   double x, y, average;   printf("请输入浮点数x与y: ");   scanf("%lf %lf", &x, &y);   average = (x+y)/2;   printf("x与y的平均数为: %\n", average);   system("PAUSE");   return 0; }

    输出结果

    利用scanf函数,从键盘输入数据给变量,要特别注意的是,scanf函数的参数是要赋值变量的地址,因此,会用到地址运算符(&)。这好比邮差一定要根据收件人的地址,才能将这封信放到收件人的信箱。这么打比方,是希望你能更好地了解地址的概念。程序中变量x与y的数据类型是double,所以其对应的格式都是%lf。

    在此要特别提醒读者的是,本书所输出的内存地址会与你所得到的结果不同,因为我们使用不同的计算机设备。使用地址的目的是让你了解变量存储位置。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)