2013-08-29 3 views
2
1.NODE **ptr = (NODE **)node 
NODE *delPtr = *ptr; 
obj->addList(delPtr->strKey); 

2.NODE **ptr = (NODE **)node; 
obj->addList(*ptr->strKey); 

저는 이것을 만들고있는 코어 덤프 프로그램에 대해 분석 중이며 기능이 동일하다고 보입니다. 두 선언의 차이점은 무엇입니까? 두 번째도 코어 덤프를합니까? 도와주세요.아래의 코드에서 포인터 사용

답변

6

Operator precedence->은 참조 연산자 전에 평가 때문에

obj->addList(*ptr->strKey); 

실제로 * 말한다

obj->addList(*(ptr->strKey)); 

이 양식을 사용하려면 *ptr

주위에 괄호를 사용해야합니다
obj->addList((*ptr)->strKey); 
+0

죄송합니다. 정확하게 말하십시오. 라인은 obj -> _ callBack ((* ptr) -> intKey) ..하지만 내 질문에 두 가지 형식의 선언 (1 및 2) 실행 중에 차이가 있는지 여부입니다 – user2728783