Penunjuk (*) menyimpan alamat pembolehubah dan digunakan untuk mengakses dan mengubah suai nilai pembolehubah. Operator alamat (&) mendapat alamat pembolehubah, yang boleh diberikan kepada penunjuk atau dihantar ke fungsi. Perbezaannya ialah: penunjuk boleh dinyahrujuk, manakala pengendali alamat sendiri tidak boleh mengakses nilai pembolehubah.
Senario aplikasi dan perbezaan antara penunjuk (*) dan pengendali alamat (&) dalam bahasa C
Penunjuk (*)
- >Perisytiharan*U:
*
符号,后面跟变量名
-
作用:存储变量的地址
-
用途:
- 访问和修改变量的值(通过解引用)
- 传递变量的地址(作为函数的参数)
- 实现动态内存分配
地址运算符(&)
-
声明:使用
&
符号,前面是变量名
-
作用:获取变量的地址
-
用途:
- 将变量的地址赋值给指针
- 传递变量的地址(作为函数的参数)
区别
- 指针指向变量的地址,而地址运算符获取变量的地址。
- 指针可以解引用以访问和修改变量的值,而地址运算符本身不能访问变量的值。
实战案例
以下代码示例演示了指针和地址运算符在 C 语言中的使用:
#include <stdio.h>
int main() {
int x = 10;
// 获取 x 的地址并将其赋值给指针 p
int *p = &x;
// 使用解引用运算符 * 访问和修改 x 的值
*p += 5;
// 打印修改后的 x 值
printf("x: %d\n", x); // 输出:15
// 传递 p 指针作为函数的参数
myFunction(p);
return 0;
}
void myFunction(int *ptr) {
// 修改指向值的变量
*ptr = 20;
}
在这个示例中:
-
*p
解引用指针 p 并访问指向的变量 x。
- 函数
myFunction
接收指向 x 的指针 p
,并通过 *ptr
Fungsi:
Simpan alamat pembolehubah 🎜🎜🎜🎜 Tujuan: 🎜🎜🎜🎜 Akses dan ubah suai nilai pembolehubah (dengan penyahrujukan) 🎜🎜 (sebagai alamat pembolehubah parameter fungsi) 🎜 🎜Laksanakan peruntukan memori dinamik🎜🎜🎜🎜🎜🎜Pengendali alamat (&)🎜🎜🎜🎜🎜Pengisytiharan: 🎜Gunakan simbol
&, didahului oleh nama pembolehubah🎜 🎜Fungsi: 🎜Dapatkan alamat pembolehubah 🎜🎜🎜🎜Tujuan: 🎜🎜🎜🎜Tetapkan alamat pembolehubah kepada penunjuk🎜🎜Lepasi alamat pembolehubah🎜(sebagai parameter fungsi)🎜🎜 🎜Perbezaan🎜🎜🎜🎜Penunjuk menunjuk ke alamat pembolehubah, manakala pengendali alamat Dapatkan alamat pembolehubah. 🎜🎜Penunjuk boleh dinyahrujuk untuk mengakses dan mengubah suai nilai pembolehubah, manakala pengendali alamat itu sendiri tidak boleh mengakses nilai pembolehubah. 🎜🎜🎜🎜Kes praktikal🎜🎜🎜Contoh kod berikut menunjukkan penggunaan penunjuk dan pengendali alamat dalam bahasa C: 🎜rrreee🎜Dalam contoh ini: 🎜🎜🎜*p Penunjuk dereference p dan akses pembolehubah x ditunjuk. 🎜🎜Fungsi myFunction
menerima penuding p
yang menunjuk ke x dan mengubah suai nilai x melalui *ptr
. 🎜🎜Atas ialah kandungan terperinci Kuasai senario aplikasi dan perbezaan * dan & dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn