C语言 指针运算符,地址运算符是怎样工作的

2024-11-27 23:03:55
推荐回答(2个)
回答1:

我把“*”和“&”这两个运算符做了较详细解释。这段代码你可以拷贝到VC/VS工程中看,我不知道你学过计算机硬件知识没,如果你学过硬件的一些基础知识,就比较容易理解。不过没学过也可以理解。如果你不明白就再问

int main()
{
int arr1 = 12, arr2 = 15;
char ch1 = 'b', ch2 = 'h';
float f1 = 3.14, f2 = 3.15;

/* “*”地址运算符解释 */
/* 定义三个指针,这三个指针分别指向不同的数据类型 */
/* 注意:此处的“*”指针运算符是为了说明我们定义的变量是一个指针变量 */
int *p_arr = &arr1; //指针变量p_arr中存放的是arr1的地址
char *p_ch = &ch1 ; //指针变量p_ch中存放的是ch1的地址
float *p_f = &f1 ; //指针变量p_f中存放的是f1的地址

/* 注意:此处的“*”指针运算符是为了操作指针p_arr指向的元素 */
*(p_arr) = 30; //等价于把变量arr1赋值为30
*(p_ch) = 'c'; //等价于把变量ch1赋值为字符'c'
*(p_f) = 90.89; //等价于把变量f1赋值为浮点数90.89

/* “&”地址运算符解释 */
p_arr = &arr2; //把变量arr2的地址赋值给p_arr
p_ch = &ch2; //把变量ch2的地址赋值给p_ch
p_f = &f2; //把变量f2的地址赋值给p_f

return 0;
}

回答2:

函数调用