c语言中指针中 - 和 。的区别?
生活随笔
收集整理的這篇文章主要介紹了
c语言中指针中 - 和 。的区别?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
c語(yǔ)言中指針中 -> 和 。的區(qū)別?
例子1:比如有如下結(jié)構(gòu)
typedef strut node{
? ?int data;
? strut node * next;
} ListNode;
ListNode * p=(ListNode *) malloc(sizeof(ListNode));
上面語(yǔ)句中涉及到指針變量和結(jié)點(diǎn)變量?jī)蓚€(gè)概念:
(1)變量p 是ListNode * ?類(lèi)型的指針變量 p的值指向某一個(gè)結(jié)點(diǎn)的地址p所指向的(ListNode *) malloc(sizeof(ListNode));就是結(jié)點(diǎn)變量p是指針,
如果是 *p就表示結(jié)點(diǎn)變量,結(jié)點(diǎn)變量實(shí)際就是變量本身要訪問(wèn)成員,比如data 可以直接(*p).data
(2)如果用指針訪問(wèn)結(jié)構(gòu)內(nèi)成語(yǔ)必須用p->data
例子2:
-> ? 指針變量
. ? ?常規(guī)變量
X* px = new X(); px 是指針,防問(wèn)任何變量或函數(shù)都用 ?px->開(kāi)頭
X x; ? ?則 用 x. 開(kāi)頭?
例子1:比如有如下結(jié)構(gòu)
typedef strut node{
? ?int data;
? strut node * next;
} ListNode;
ListNode * p=(ListNode *) malloc(sizeof(ListNode));
上面語(yǔ)句中涉及到指針變量和結(jié)點(diǎn)變量?jī)蓚€(gè)概念:
(1)變量p 是ListNode * ?類(lèi)型的指針變量 p的值指向某一個(gè)結(jié)點(diǎn)的地址p所指向的(ListNode *) malloc(sizeof(ListNode));就是結(jié)點(diǎn)變量p是指針,
如果是 *p就表示結(jié)點(diǎn)變量,結(jié)點(diǎn)變量實(shí)際就是變量本身要訪問(wèn)成員,比如data 可以直接(*p).data
(2)如果用指針訪問(wèn)結(jié)構(gòu)內(nèi)成語(yǔ)必須用p->data
例子2:
-> ? 指針變量
. ? ?常規(guī)變量
X* px = new X(); px 是指針,防問(wèn)任何變量或函數(shù)都用 ?px->開(kāi)頭
X x; ? ?則 用 x. 開(kāi)頭?
總結(jié)
以上是生活随笔為你收集整理的c语言中指针中 - 和 。的区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 解析XML时,需要校验节点是否闭合,如必
- 下一篇: 若有说明:int *p1,*p2,m=5