2016-11-01 4 views
1

문자 테이블에서 전체 숫자를 가져올 수 있습니까? 예를 들면 :Char 2D Array는 문자를 개별적으로 처리합니다.

char *table[]={"A","123","2"}; 

나가 수 (123)를 표시하려면,하지만 난

cout<<*table[1]; 

를 호출 할 때마다 내가

1 

내가이 문제를 해결 할 수 있습니까거야?

+0

그냥'table [1]'해봤습니까? – stark

+0

그것은 왜 작동합니까? * table [1]과 어떻게 다른가요? – Mikkey

+0

그리고 main 함수에 이러한 매개 변수가 있기 때문에 * table []을 조작해야합니다. 나는 다른 테이블에 strcpy하려고했으나 타입이 서로 일치하지 않는다고 말했다. – Mikkey

답변

0

문자 *table[]={"A","123","2"}을 작성할 때 char 포인터의 배열을 선언하십시오. 어떤 의미에서 이것은 2 차원 배열이고 당신은 사용하여 "123"를 인쇄 할 것이다 :

for(unsigned i=0; table[j][i]!='\0'; ++i) //given j = 1       
{            
    cout << table[j][i]; 
} 

출력 : 당신이 operator precedence table for C++ 보면

123 
0

, 당신은 []이 높을수록 그 배열 첨자 찾을 수 포인터 역 참조보다 우선 순위가 높음 *. 이것은, 그런 다음에 일어나는 일입니다.

table은 포인터의 배열입니다. 배열의 포인터는 문자열의 첫 번째 문자를 가리 킵니다. 문자열의 다음 문자는 단순히 메모리의 다음 문자입니다. 문자열의 끝은 null 종결 자라고하는 값 (정수) 0 인 첫 번째 문자입니다.

table[1]에 액세스하면 인덱스 1의 요소 (문자열을 나타내는 char에 대한 포인터)를 가져옵니다. *table[1]에 액세스하면 인덱스 1의 배열에있는 요소 (char에 대한 포인터)를 얻은 다음 해당 포인터의 참조를 취소하여 포인터가 가리키는 char을 가져옵니다.

관련 문제