반응형
//************************************************
//  포인터 정복 !! 
//************************************************
// 1. 참조와 역참조의 개념을 정확히 이해하자 !! 
// 2. 연산자 우선순위에 대해 정확히 이해하자 !! 
// 1) 괄호의 변경 --> 우선 순위 개념 !! 
// 2) *의 갯수 :  참조와 역참조의 개념 !! 
//		 p[0]->a;
// 3. 무엇의 주소인가 ?? 
//   - 가르키는것이 무엇인가? !! 
//    int  * -->  4byte 
//   char * --> 1byte
//************************************************
// 배열과 포인터 !! 
//************************************************
// 배열 --> 연속된 메모리공간에 같은 타입의 데이타들의 집합 !! 

#include 
#include  
void main()
{
	//int p[3]; // [ ][ ][ ] 
	// 쓰레기 값때문에 초기화 불가능하다 !! 
	//printf("%d %d %d\n" ,  p[0] , p[1], p[2]);
	//printf("%d %d %d\n" ,  &p[0] , &p[1], &p[2]);
	// 인덱스를 통한 젒근 
	//	p[0] = 10; 
	//	printf("%d %d %d\n" ,  p[0] , p[1], p[2]);
/*	int p[3] = {0}; //1)
	int p1[] = {0,1,2}; //배열의 크기를 컴파일러에 할당을 위임 !! 
	p[0] = 0; //2) 
	p[1] = 0;
	p[2] = 0;
	//3)
	for(int i = 0; i<3; i++  )
		p[i] = 0; 
	//4) 
	memset(p,0,3);*/
	 
	//다차원 배열 !! 
	/*int p[3][3] ={ {0,1,2},
					{0,1,2},
					{0,1,2}};*/ //[10][20][30]
	// 배열의 배열의 의미한다 !!
/*	int p[20][50][18][14][4]; // [2][1][3][3]
								// [2][1][3][3]
	
	struct car
	{
		int seat[14][4];
	}

	struct KTX
	{ 
		car carlist[10]
	}
	struct S_to_p
	{
		KTX TheKtx[50]; 
	}
		
	S_to_p[0].carlist[7].seat[7][3]; 
*/
	// [2][1][3][3]
	// [2][1][3][3]
  
	// [2][1][3][3]
	// [2][1][3][3]
  
	// [2][1][3][3]
	// [2][1][3][3]
	
	// 배열과 포인터의 관계 !! 

	// 1차원 : 
	int Array[3] = {0,1,2}; 

	int *  p; 

	p = Array; // 배열의 시작 위치의 주소값!! 

	printf("Array = %d\n", Array);
	printf("p  = %d\n" , p);
	printf("p  = %d\n" , *p); 
	printf("p[0]  = %d\n" , p[0]); 
	// * == [] == 
  




}




+ Recent posts