图8.1函数内存映射方式1.指向函数指针变量的定义C语言中可以定义指针变量来存储函数的首地址,并利用该指针变量对函数进行调用。指向函数的指针变量的真正作用是作为函数参数使用,使程序在功能的实现上具有更大的灵活性。指向函数的指针变量求最大值、最小值和两数之和。......
2023-11-20
程序在编译时将每一个变量名对应一个地址,在内存中不再出现变量名,而只有地址。对变量值的存取通过地址进行,访问方式通常有两种。
(1)直接利用变量地址进行存取。
在例6.1 中,当系统执行输入语句scanf(“%d”,&i)时,根据变量i 与地址的对应关系,找到变量i 的起始地址2011,然后把键盘输入的数值(10)存入&i 所指示的单元中。变量i在内存中的地址和数值,如图6.1 所示。
当系统执行输出语句printf(“i=%d”,i)时,根据变量i 找到对应的起始地址2011,从2011到2014 字节单元中取出其中的数据(10),输出到屏幕上。
这种通过变量名或地址访问一个变量的方式称为“直接访问”。(www.chuimin.cn)
(2)通过指针变量存取。
C 语言规定,可以把一个变量的地址存放到另一个变量中,这个变量称为指针变量。例如指针变量“i_pointer”的地址2019,取出其中的数值2011,即变量i 的起始地址,然后从地址2011 和2014 中取出变量i 的值10。其示意如图6.1 所示。
这里,指针变量只能存放地址,而不能存放其他数据。这种通过指针变量访问某一变量的方法称为“间接访问”。
举个例子,假设要打开A 保险柜,有两种方法:一是将A 保险柜钥匙带在身上,需要时用该钥匙打开A 保险柜,取出东西,这就是直接访问;另一种方法是将A 保险柜钥匙放到B保险柜中锁起来,需要时先拿B 钥匙打开B 保险柜,从中取出A 钥匙,再打开A 保险柜,取出东西,这就是间接访问。
有关C语言程序设计实用教程的文章
图8.1函数内存映射方式1.指向函数指针变量的定义C语言中可以定义指针变量来存储函数的首地址,并利用该指针变量对函数进行调用。指向函数的指针变量的真正作用是作为函数参数使用,使程序在功能的实现上具有更大的灵活性。指向函数的指针变量求最大值、最小值和两数之和。......
2023-11-20
例5.12外部变量的使用。我们把例5.12稍加改动:存储类型标识符extern告诉系统,变量类型和名字已在别处定义过了,这里的extern int i;只是说明一下i是外部变量。如果外部变量的定义在使用之前,不用extern说明也可以;但如果定义在使用后面,说明就是不可缺少的了。最后应说明的是,外部变量提供了一种在函数间自由传递数据的机制,为编写程序带来了一些方便。但是,外部变量也有很大的副作用,它破坏了函数的封闭性,使程序的控制复杂起来。......
2023-11-18
用户自己定义的结构体类型,与系统定义的标准类型一样,是可以用来定义结构体类型的变量。这种方法定义的结构体类型在程序后面不可使用,因为缺少完整的结构体类型名。......
2023-10-21
在变量名及其类型之前加上关键字static,就规定该变量的存储类型为静态的。例5.11一个静态变量和自动变量比较的程序。运行结果:auto_var=0,static_var=0auto_var=0,static_var=1auto_var=0,static_var=2auto_var=0,static_var=3auto_var=0,static_var=4上例中,main()函数共5次调用了auto_static()函数,每次调用时自动变量auto_var都输出0值,这是因为每次调用时系统都给auto_var分配存储单元并赋初值0。当auto_static()结束运行时,static_var的值仍然保留,再次调用auto_static()函数时,系统不再为它重新分配存储空间并赋初值,而是采用以前留下的值,因此static_var的值每次调用都会增加1。......
2023-11-18
图5.12extern关键字对全局变量的作用例5.16程序中在第12行定义了全局变量x并赋初值为100,根据定义其作用域为第12~17行所构成的区间。图5.13extern关键字对全局变量的作用在图5.13中标注为②的源程序文件中定义了全局变量y,该全局变量默认的作用域范围为其定义所在的整个源程序文件。自动变量的生存期与其所在函数被调用运行的时间相同,并且自动变量的值在函数的多次调用中都不会保留。......
2023-11-20
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
还可以在枚举类型定义中对枚举元素起始值作多次改变,每次改变后枚举值从该处开始递增直到遇到下一次起始值的指定为止。枚举数据类型定义完成后,仍然需要定义枚举变量才能使用,常见的方法有:①先定义枚举类型,然后定义枚举变量。枚举变量的输入输出示例。......
2023-11-20
相关推荐