🍋查找地址:&
2021-1-21
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
指针(pointer)是 C 语言最重要的(有时也是最复杂的)概念之一,用于储存变量的地址。前面使用的scanf()函数中就使用地址作为参数。如果主调函数不使用return返回的值,则必须通过地址才能修改主调函数中的值。
一元&运算符给出变量的存储地址。如果pooh是变量名,那么&pooh是变量的地址。可以把地址看作是变量在内存中的位置。假设有下面的语句:
假设pooh的存储地址是0B76(PC地址通常用十六进制形式表示)。那么:
 
实现不同,%p表示地址的方式也不同。然而,许多实现都以十六进制显示地址。
该例的输出说明了什么?
首先,两个pooh的地址不同,两个bah的地址也不同,计算机把它们看成4个独立的变量。
其次,函数调用mikado(pooh)把实际参数(main()中的pooh)的值(2)传递给形式参数(mikado()中的bah)。这种传递只传递了值,涉及的两个变量(main()中的pooh和mikado()中的bah)并未改变。 这并不是在所有语言中都成立。例如,在FORTRAN中,子例程会影响主调例程的原始变量。子例程的变量名可能与原始变量不同,但是它们的地址相同。但是,在 C语言中不是这样。每个C函数都有自己的变量。这样做更可取,因为这样做可以防止原始变量被被调函数中的副作用意外修改。然而这也带来了一些麻烦。
 
 
  • C
  • 编译多个文件更改主调函数中的变量
    目录