Maison  >  Article  >  Quelle est la différence entre *p+1 et *(p+1)

Quelle est la différence entre *p+1 et *(p+1)

醉折花枝作酒筹
醉折花枝作酒筹original
2021-07-09 11:54:1021314parcourir

La différence est : 1. *p représente le contenu stocké dans l'adresse mémoire pointée par ce pointeur, p représente le nom d'une variable de pointeur ; 2. *p est généralement une variable ou une constante cohérente avec le type de pointeur, et p génère un nombre hexadécimal ; 3. *p indique au programme d'accéder à cette adresse pour récupérer des données, et p stocke l'adresse.

Quelle est la différence entre *p+1 et *(p+1)

L'environnement d'exploitation de ce tutoriel : système Windows 7, version C++17, ordinateur Dell G3.

En langage C, *p et p sont couramment utilisés dans les pointeurs pour représenter une variable de pointeur. La différence entre *p et p :

1 Les significations sont différentes

*p représente le contenu stocké dans l'adresse mémoire pointée. par ce pointeur.

p représente le nom d'une variable pointeur, qui fait référence à l'adresse mémoire pointée par la variable pointeur.

2. Le format de sortie est différent

*p est généralement une variable ou une constante cohérente avec le type de pointeur.

p génère un nombre hexadécimal et affiche l'adresse d'un pointeur.

3. Différentes fonctions

*p consiste à laisser le programme se rendre à cette adresse pour récupérer des données.

p stocke l'adresse.

Exemples :

1,

int a[5]={1,2,3,4,5};
int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。

2,

int a[5]={1,2,3,4,5};
int *p;//声明指针变量p
p = a;

Quelle est la différence entre *p+1 et *(p+1)

L'opération Informations étendues

(*p) est une opération qui renvoie la valeur de p comme valeur de l'espace d'adressage. (&p) est une opération qui renvoie l'adresse ouverte lorsque p a été déclaré. Vous pouvez utiliser des instructions d'affectation pour attribuer des valeurs aux adresses mémoire.

Exemple :

int *p;
p=2003H;
*p=3000H

Résultat :

**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。
&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数无法存放地址。
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。

Tutoriel recommandé : "C#"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn