2012-01-24 3 views
8

나는 C++의 평균 프로그래머이며, 보통 포인터를 사용하지 마십시오. 하지만 최근에 일부 API 만 사용하기 시작했습니다. 그리고 솔직히 말해서 API 작성자가 의도 한/암시 한 것과 유사한 경로로 계속 진행하면 훨씬 더 효과적입니다.C++에서 Excel 워크 시트의 셀 참조와 같은 포인터입니까?

형식 및 기능은 분명하지만 구문이 아닙니다. Microsoft Excel의 "셀 참조"와 유사한 "포인터"를 "다소"라고 볼 수 있습니까?

Microsoft Excel을 사용하여 수년 간의 경험이 있습니다. 나는 Excel의 사용법에 관해서도 "Formula/Reference Junkie"의 일종이기 때문에이 생각의 기차가 내게 의미가 있습니다. 나는 옳은 방향으로 "지적"했는지 알고 싶습니다.

감사합니다!

+2

당신이 포인터에 대해 혼란 스럽다면 * 평균 * C++ 프로그래머가 아닙니다. 그러나 계속 지켜라! C++는 컴퓨터 과학에 대해 많은 것을 가르쳐주는 훌륭한 언어입니다. – log0

+1

@Ugo - 단일 포인터를 사용하지 않고도 C++로 유용하고 효율적인 코드를 작성할 수 있습니다. 공유 할 의미있는 것이 없으면 자신의 사업을 염두에 두는 것도 가능합니다. – tahwos

답변

9

Excel의 셀 참조는 통합 문서의 특정 위치 (또는 경우에 따라 다른 통합 문서)를 나타내는 문자열입니다.

C++의 포인터는 메모리 주소입니다. 메모리 주소는 가상 RAM의 특정 지점을 찾는 번호입니다 (그 이상!).

그렇습니다. 실제로는 비슷합니다. 나는이 두 가지가 얼마나 다른지에 대해 이야기함으로써 당신의 행렬에 비를 칠 준비가되어있었습니다. 그러나 비유가 작용합니다.

포인터를 "역 참조"하면 포인터가 가리키는 메모리의 바로 그 지점으로갑니다. Excel에서는 셀 참조를 "참조 해제"하지 않습니다. 그러나 충분히 가깝습니다.

int y = 4; int* x = &y;라고 말하면, 그것은 "4"를 포함하는 B1에 셀을 생성하고 "= B1"을 포함하는 다른 셀을 생성하는 것과 같습니다.

+0

답장의 마지막 문장은 처음부터 이런 식으로 생각하게 만드는 것입니다. 왜냐하면 내가 항상 그렇게하기 때문입니다 ("= B1"). 답장의 두 번째 문장은 일종의 제 질문입니다. Excel에서의 셀 참조는 워크 시트의 특정 위치를 찾는 숫자 "및 문자"입니다. << 내 비유가 있습니다. 나는 너의 대답을 좋아해, 고마워! – tahwos

+0

셀 참조를 명명 된 참조로 간주합니다. Excel 코드에는 이것을 실제 셀 참조, 가능한 서명으로 변환하는 함수가있을 것입니다 : Cell * locateRef (char const * ref)'. 이 명명 된 참조는 스프레드 시트 도메인에 있지만 포인터 참조는 메모리 도메인에 있지만 둘 다 같은 것을 참조합니다. –

+0

@ edA-qa mort-ora-y, 나는 그것을 문자 그대로 의미하지는 않았지만, 입력에 감사드립니다. – tahwos

0

나는 그것이 합리적인 비유라고 생각한다.

0

포인터는 무언가 (또는 아무것도) 보유하고있는 메모리의 주소 인 뿐입니다.

실제로 셀에 데이터가 있는지 여부에 관계없이 주소는 셀의 포인터로 간주 할 수 있습니다.

셀 자체는 포인터가 아닙니다.

1

봄에 유추 할 수있는 몇 가지 유추가 있지만 컴퓨터 프로그래밍을 처음 배웠던 고전적인 것은 유 방의 메일 함이었습니다. Tom, Dick, Harry라는 메일 박스를 상상해보십시오.

톰의 메일 상자에서
  • , 딕의 메일 상자에 단서가 말한다 봉투를 배치
  • 딕의 메일 상자, 보물 해리의 메일 박스에 말한다 봉투를 장소에
  • 해리의 메일 상자에서
  • , 당신은 $ 100 달러를 씁니다! 야!

는 컴퓨터 프로그래밍에서, 톰, 딕과 해리는 모든 메모리 주소입니다. 처음 두 개는 포인터를 포함하고, 세 번째 포인터는 숫자 값을 포함합니다. Tom 또는 Dick의 사서함에서 봉투를 여는 것은 포인터를 역 참조하는 것과 같습니다.

우리는이 쓰기 :

int harry = 100; 
int *dick = &harry; 
int **tom = &dick; 

그래서, ** 톰 == * 거시기 == 해리 == 톰 하다니 (100) 는 해리에 대한 포인터에 대한 포인터입니다. 거시기는 해리를 가리키는 포인터입니다.

0

아니요. 포인터는 색인을 생성 할 수 있으며 유효하지 않을 수도 있습니다. 그리고 나는 Excel 셀에서도 그러한 것들이 사실이 아니라고 믿습니다.

+0

둘 다 Excel에서 true입니다. 셀 범위를 인덱싱하거나 단일 셀의 내용을 인덱싱 할 수 있습니다. 유효하지 않은 셀 참조가 #VALUE !, #DATA! 등의 오류로 표시됩니다. – tahwos

관련 문제