본문 바로가기

C언어 포인터

[C프로그래밍] - 문자배열과 포인터 문자배열과 포인터 어떤 문자열을 저장하고 싶을때char str[100] = "G.MA's LOG"; 와 같이 문자배열을 초기화 해줄수 있다. 다른 방법으로char *ptr = "G.MA's LOG"; 도 가능하다.위와 같이 하면 메모리에 "G.MA's LOG"가 들어갈 공간을 만들고 "G.MA's LOG"를 넣어준다. 그리고 그 시작주소를 ptr에 넘겨주게된다. char str[100] = "G.MA's LOG";char *ptr = str; 위와같이도 가능하다. 여기서 str은 배열의 이름이자 배열의 시작주소(=&str[0])이다. 배열의 이름은 상수 포인터라고 하기도 하는데 그 주소값이 바뀔수 없기때문이다.즉 str++;을 실행하면 에러가 난다. 따라서 산술연산을 통해 배열의 원소에 접근하고 싶다면 .. 더보기
[C프로그래밍] - 포인터 포인터 개념 / 선언과 초기화 포인터(포인터 변수)는 변수의 주소값을 저장할수 있다. 예를 들어, int a =10; 정수형 변수 a를 선언하고 10으로 초기화 했다.변수a의 값은 메모리공간 어딘가에 저장되어진다. 변수의 값은 모두 메모리공간 어딘가에 저장되어지는데 이 변수값에 접근하고 싶다면 이 변수가 어디 저장되어있는지 주소값을 알아야 한다. &a는 a의 값이 저장되어있는 메모리주소를 의미한다. 즉 &a는 a의 주소값이다. 그리고 변수의 주소값을 저장하는 변수를 포인터 변수라고 한다. &a(a의 주소값)을 저장하기위한 자료형은 포인터인 것이다. int* ptr = &a; 이와 같이 정수형 포인터 변수를 선언하고 초기화 해줄수있다. ptr이라는 변수에 a의 주소값을 넣었다. 여기서 int * 는 하나의.. 더보기