언어/C언어

[C언어] 메모리 주소값 출력

antoroong 2025. 3. 3. 22:44
#include<stdio.h>


int main(void) {

	int a = 10;
	int b = 20;


 //10진법 표시 %d
	printf("변수 a의 주소는 %d입니다.\n", &a);
	printf("변수 b의 주소는 %d입니다.\n", &b);

	//16진법 표시 %p
	printf("변수 a의 주소는 %p입니다.\n", &a);
	printf("변수 b의 주소는 %p입니다.\n", &b);



	return 0;
}

 

 

 

 

 

배열의 주소값

배열 int는 4배열당 4byte씩 증가

 

#include<stdio.h>


int main(void) {


int a[3] = { 10, 20, 30 };

	printf("a[0]의 값은 %d , a[0]의 주소값은 %d \n", a[0], &a[0]);
	printf("a[1]의 값은 %d , a[1]의 주소값은 %d \n", a[1], &a[1]);
	printf("a[2]의 값은 %d , a[2]의 주소값은 %d \n", a[2], &a[2]);

// a == a[0]
printf("배열의 이름 a의 주소값은 %d \n",a); //즉 a자체는 a[0]의 주소값과 같다

	return 0;
}

 

 

-가 나올 경우 -4씩 하면된다

 

 

 

 

배열의 주소값2 ... &a[0] = a +0

 

 

 

 

 

#include<stdio.h>


int main(void) {

/*ch 3 */
	// &a[0] == a + 0

	int a[3] = { 10,20,30 };
	printf("&a[0]는 %d,  a + 0는 %d \n", &a[0], a + 0);
	printf("&a[1]는 %d,  a + 1는 %d \n", &a[1], a + 1);
	printf("&a[2]는 %d,  a + 2는 %d \n", &a[2], a + 2);

	printf("&a[0]는 %c,  a + 0는 %d \n", &a[0], a + 0);
	printf("&a[1]는 %c,  a + 1는 %d \n", &a[1], a + 1);
	printf("&a[2]는 %c,  a + 2는 %d \n", &a[2], a + 2);

	return 0;
}

 

 

 

&a[0]는 a+0과 같다 ..