use*_*958 4 c pointers memory-address
我是编程新手,目前我正在学习C中的指针.
我的问题是我已经读过,如果我们想要改变变量的值,我们必须将指针传递给它(即我们想要修改的值的位置).这是什么意思?我的意思是,我们必须传递指向函数的指针吗?声明的含义是什么,"我们必须将指针传递给我们想要修改的位置".
指针不是变量.指针是一个值.
C中的变量指定存储位置,并且值可以存储在该位置.因此,如果您有一个a
声明的变量int a
,那么它a
是一个可以存储整数值的变量.如果你有一个变量int *x
,那么它x
是一个变量,其中可以存储指向整数值的指针.
可以使用&
操作员获得存储位置的地址.例如,&a
是由指定的存储单元的地址a
,或地址的a
,并且可以被存储在(除其他外)的相应类型的变量.因此你可以:
int a = 42; /* a is a variable of type int, and has value 42 */
int* x = &a; /* x is a variable of type int*, and has value &a */
Run Code Online (Sandbox Code Playgroud)
虽然编程中的类比通常很危险,但您可能会想到书中的页码等内容.页面的页码与页面不同,但页面编号仍然可以写在页面上.例如,目录页面上写有许多页码.从而:
actual_page p = ...; /* a page structure */
page_number n = &p; /* a page number */
Run Code Online (Sandbox Code Playgroud)