Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara *p dan p dalam bahasa C

Apakah perbezaan antara *p dan p dalam bahasa C

青灯夜游
青灯夜游asal
2022-11-29 18:03:1047748semak imbas

Perbezaan: 1. Maksudnya berbeza "*p" mewakili kandungan yang disimpan dalam alamat memori yang ditunjuk oleh penunjuk ini oleh pembolehubah penunjuk ini. 2. Format keluaran adalah berbeza "*p" biasanya mengeluarkan pembolehubah atau pemalar jenis yang sama dengan penunjuk "p" mengeluarkan nombor perenambelasan dan alamat penunjuk. 3. Fungsi adalah berbeza "*p" memberitahu program untuk pergi ke alamat itu untuk mendapatkan data, dan "p" digunakan untuk menyimpan alamat.

Apakah perbezaan antara *p dan p dalam bahasa C

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi c99, komputer Dell G3.

Fahami *p dan p

Dalam bahasa C, *p dan p biasanya digunakan dalam penunjuk untuk mewakili pembolehubah penunjuk.

Jika anda ingin menggunakan penunjuk, anda perlu memahami alamat dan data terlebih dahulu: anda boleh bayangkan terdapat banyak kotak, setiap kotak mempunyai nombor yang sepadan, nombor itu dipanggil "alamat", dan perkara-perkara dalam kotak itu dipanggil "data" .

p ialah pembolehubah penunjuk, digunakan untuk menyimpan alamat Anda boleh menganggapnya sebagai nombor kotak yang disebut di atas. Anda boleh menganggapnya sebagai membuka kotak. p bermakna membuka p kotak No dan keluarkan data di dalamnya.

Ringkasnya, anda ingat bahawa p menyimpan alamat, dan p memberitahu program untuk pergi ke alamat itu untuk mendapatkan semula data.

Tanda * mempunyai tiga kegunaan dalam bahasa C, iaitu:

  • Tanda darab, digunakan untuk operasi darab, seperti 5*6.

  • Mengisytiharkan penunjuk, digunakan semasa mentakrifkan pembolehubah penunjuk, seperti int *p;.

  • Pengendali tidak langsung, memperoleh nilai dalam memori yang ditunjuk oleh penuding, seperti printf("%d",*p);.

Perbezaan antara *p dan p dalam bahasa C

1 🎜 >

mewakili kandungan yang disimpan dalam alamat memori yang ditunjuk oleh penuding ini. *p

mewakili nama pembolehubah penunjuk, yang merujuk kepada alamat memori yang ditunjuk oleh pembolehubah penunjuk. p

2. Format output adalah berbeza

Ia biasanya pembolehubah atau pemalar yang konsisten dengan jenis penunjuk. *p

Output ialah nombor perenambelasan dan alamat penuding. p

3. Fungsi yang berbeza

Biar program pergi ke alamat tersebut untuk mendapatkan semula data. *p

p menyimpan alamat.

Contoh:

#include <stdio.h>

int main(void){ 

int x=3;

int *p,*q;

p=&x,q=&x;

printf("%d\n",*p++);

printf("%d\n",(*q)++);

printf("%d\n",x);

}
Hasil keluaran ialah: 3, 3, 4; 🎜 >

Penjelasan: Apakah perbezaan antara *p dan p dalam bahasa C

Apakah perbezaan antara *p dan p dalam bahasa CMeluaskan pengetahuan: Perbezaan antara

dan

*p **p: Penunjuk tahap satu, menunjukkan bahawa alamat yang ditunjuk oleh p menyimpan nilai jenis int

int *p: Penunjuk tahap dua, menunjukkan bahawa alamat yang ditunjuk oleh p menyimpan nilai int . Penunjuk jenis int (iaitu, alamat yang ditunjukkan oleh p menyimpan penunjuk peringkat pertama ke int)

Contohnya: int **p

Kemudian cara untuk mendapatkan nilai 10 ialah:

int i=10; //定义了一个整型变量
int *p=&i; //定义了一个指针指向这个变量
int **p1=&p; //定义了一个二级指针指向p指针

printf("i=[%d]\n",*p);
printf("i=[%d]\n",**p1);

Cadangan berkaitan: "Apakah perbezaan antara *p dan p dalam bahasa CTutorial Video C

"

Atas ialah kandungan terperinci Apakah perbezaan antara *p dan p 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