[C] 포인터 - 2 포인터 변수가 가리키는 자료형의 의미 포인터 변수가 가리키는 자료형은 포인터 변수가 가리키는 메모리 공간의 해석과 연관된다. 포인터 값 자체는 정수값이지만 가리키는 자료형에 대한 정보를 가지고 있으므로 정수형 변수가 저장할 수 없다. 포인터 변수에 주소값을 대입할때는 형변환을 해주지 않아도 컴파일은 되지만, 컴파일러는 잠재적 위험으로 인식하고 있다. 형변환을 해줘서 잠재적 위험을 없애주자. 포인터 변수를 호출할때 *는 그 주소로 따라가라는 뜻으로 사용된다. int iNum = 100; int *p = &iNum; 을 선언해주면 Type Name Address int iNum 2000(임의로) int* p 1000(임의로) 심볼테이블이 생성된다. int는 4바이트, 포인터는 4바이트를 차지한다. 두 변수는.. 개발자과정준비/C 5년 전
[C] 포인터 - 1 포인터 변수의 값과 주소 변수를 선언하는 것은 메모리에 기억공간을 할당하는 것이며, 할당된 이후에는 변수명으로 그 기억공간을 사용한다. 변수가 선언되면 컴파일러는 심볼테이블(symbol table)이라는 변수의 목록을 만든다. 심볼테이블에는 변수이름과 자료형과 이 변수가 할당받은 메모리의 주소가 기록된다. 변수가 할당받은 공간에 변수의 값이 들어간다. 변수의 선언시에는 미지정값이 들어 있다. 변수 x와 y앞에 붙은 &는 주소 연산자이다. &x는 변수가 할당받은 메모리의 주소를 말한다. 메모리에는 바이트(byte)단위로 그 위치를 식별할 수 있는 물리적인 주소값이 있으며, 형식 지정자 %p는 주소를 16진수로 출력할 때 사용된다. 여기서 변수의 주소값 0x2003이나 0x2007은 정해진 값이 아니라 프로.. 개발자과정준비/C 5년 전
[C] 반복문을 활용해서 구구단 출력 반복문(For문) 활용 지지난 포스팅에서는 반복문에 대해 알아보았다. 이번 포스팅에서는 반복문을 활용해서 예제를 작성해보는 시간을 가져보자. 일단 반복문에서 필요한 것은 조건과 반복방식(패턴)을 알아내는 것이다. 구구단 5단을 출력하는 예제를 작성해보자. #include int main() { printf("5*1 = 5\n"); printf("5*2 = 10\n"); printf("5*3 = 15\n"); printf("5*4 = 20\n"); printf("5*5 = 25\n"); printf("5*6 = 30\n"); printf("5*7 = 35\n"); printf("5*8 = 40\n"); printf("5*9 = 45\n"); } 5단을 작성하면 이렇게 할 수 있지만, 1단부터 9단까지 하려.. 개발자과정준비/C 5년 전
[C] Scanf 런타임오류 해결 방법 Scanf 에러떴을때 해결 방법 C 공부하면서 예제를 작성하다가 컴파일을 했을때, scanf에서 C4996 에러가 뜨는 것을 확인할 수 있다. 이러한 에러를 방지하고 실행할 수 있는 방법을 알아보자. 첫번째 최근 비쥬얼 스튜디오에서 scanf는 보안상의 허점을 방지하기위해 scanf_s를 사용하는 것을 권장하고 있다. 두번째 scanf_s 에 신경쓰고싶지않다면 맨 위에서 #pragma warning(disable: 4996) 을 선언해주면 된다. 4996 에러를 무시하고 컴파일 하겠다는 뜻으로, 에러의 원인인 C4996을 무시하고 컴파일하게 해준다. 세번째. 프로젝트의 속성에서 C/C++ -> 일반 -> SDL 검사를 '아니요'로 바꿔주고 적용을 클릭해준다. SDL검사를 아니오로 했을때, 그대로 실행되는.. 개발자과정준비/C 5년 전