포인터
널포인터(Null Pointer)
쓰기전에 초기화 하는것이 좋음
잘못된 메모리 접근을 미연에 방지하기 위해 사용
Null = 0 을 의미
포인터와 배열
ArrayNameType.c
결과 :
배열 처음 시작과 첫번째요소의 주소는 동일함
배열은 붙어져서 메모리 주소를 가짐
ArrayNamePointerOperation.c
결과 :
8번 : 각각 배열 첫번째 요소를 출력
11번 : 더하고 난뒤 저장된 첫번째 요소 출력
ArrayNameIsPointer.c
결과
배열주소로 호출하거나 직접 변수를 호출하거나 그위치에는 동일한 값이 저장되어있음
포인터 연산
PointerOperationResult.c
결과 :
8과9번 : 주소 자체를 증가시킴
11번 : 주소 출력
15번 : 증가된 주소 출력
PointerBaseArrayAccess.c
결과:
7번 : 배열의 순서 대로 하나씩 출력
9~18번 : 배열의 0번째 부터 2번째까지 출력후 다시 감소시키며 출력
TwoStringType.c
결과:
컴파일은 가능하나 실행시 오류가 생김
컴파일러에 따라 컴파일 자체가 안되는경우도 있음
str2는 포인터이기에 정확히 연결을 해줘야 함
윈도우 이상없음
메모리주소 출력시
포인터 비교
메모리 공간에 저장된후 값이 반환되므로
7번과 8번은 동일하게 나옴
castr의 배열에 저장된값 출력
배열의 경우 마지막에 null을 넣지 않으면 특수문자 \0 이 자동으로 붙음
그래서 castr[4]는 0을 넣음
주소에 값 대입
포인터변수에 값을 넣음으로써...
포인터의 "A = " 과 대입된 A의 값 100이 %d에 들어감으로써
출력은 A = 100 이 됨
포인터 배열
PointerArray.c
결과
포인터 배열에 각각 변수 주소를 넣어 할당한뒤 출력
StringArray.c
결과:
배열포인터에 값을 넣고 하나씩 순서대로 출력
배열을 함수의 인자로 전달
ArrayParam.c
출력:
ShowArrayElem 함수 : 배열을 총갯수만큼 읽어들여서 하나씩 출력하고 한줄개행을 하는 함수
Call By Reference
레퍼런스 참조
포인터를 이용하여 값을 직접바꾸기 때문에...Call by Value와 달리 메인내부의 값을 변경할수 있음
코드
출력
메모리 주소에 직접 값을 변경하므로
값에 의한 참조처럼 결과가 나타나지 않고...변경된 값이 출력됨
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160410_김가연_스터디일지_구조체 변수의 연산+gets puts 함수 정리 (1) | 2016.04.10 |
---|---|
비주얼 스튜디오 삭제방법 (2) | 2016.04.10 |
20160409_김가연_스터디일지_구조체의 정의 (2) | 2016.04.09 |
20160404-업무일지-허도경-로봇제어-시리얼제어-터미널 (0) | 2016.04.08 |
20160406_장진웅_업무일지_로봇제어_시리얼제어3 (0) | 2016.04.06 |
20160328_업무일지_정우민_리눅스설정 (0) | 2016.04.06 |
20160401-업무일지-허도경-로봇제어-터미널2 (0) | 2016.04.06 |
20160331-업무일지-허도경-로봇제어-터미널 (0) | 2016.04.06 |