널문자(NULL)의 값은? \0는 0의 값을 가진 아스키코드 문자이다. 프로그래머는 보통 이를 널문자라고 부르지. 배열은 왜 0부터 시작할까? 배열이 0부터 시작하는건 계산하기 편리하도록 하기 위함이다. 배열은 거리(offset)을 이용해서 나타내는데, 컴퓨터는 문자들을 메모리 안에 연결되어진 바이트로 저장을 하게된다. 이후 색인을 사용해 문자의 위치를 계산하는데. 만약 data[0]의 위치가 메모리 주소 100번지에 있으면 data[5]는 100번지 + 5 로 빠르게 계산할 수 있다.
왜 리눅스에서 프로그래밍 실행시 ./를 붙여야 하나요? 윈도우에서는 프로그래밍 실행시에 해당 폴더에서 프로그램 이름만 넣고 엔터를 하면 프로그램이 실행되는데 반해서 리눅스에서는 프로그램 이름 앞에 ./를 붙여 주어야 실행이 된다. 왜 그럴까? 리눅의 ./의 의미 유닉스 계열 운영 체제에서는 프로그램이 있는 디렉토리를 명시하거나 PATH 환경 변수에 있는 프로그램만 실행되기 때문에 그렇다. 윈도우에서는 실행할 프로그램을 찾기위해 현재 디렉토리를 검색하지만 리눅스는 하지 않는다. 따라서 현재 디렉토리인 ./를 붙여주어야 한다.
변수 혹은 함수 선언과 정의 차이점은 뭘까? 선언(Declaration)은 코드 일부로서 변수나 함수가 있음을 알려주는 것이고 정의(Difinition)은 코드 일부로서 변수나 함수가 무엇인지 알려주는 것이다. 즉 있음을 알려주는 것이 선언, 무엇인지 알려주는 것이 정의이다. int x; 라고 하면 x라는 변수가 사용될 것이라고 선언한 것이고 x=4;라고 하면 x변수는 4라고 정의한것이다. 만약 int x=4;라고 하였다면 선언과 정의가 동시에 한 것이고.
왜 포인터에 형(Type)을 지정했을까? 포인터를 사용하는 이유는 변수에 값을 쓰려는 함수는 변수 값이 아니라 변수의 주소가 필요해서이다. 그래야 함수를 벗어나서도 변경한 값이 유지되기 때문에 그렇다. 그러면 여러개의 변수들이 나열되어 있는 경우는 어떻게 할까? 각각의 변수 주소를 전부 보내줘야 할까? 각 변수 크기만큼 주소를 증가 시켜서 계산해주면 편리할 것이다. 이 때문에 나타난것이 포인터 연산이다. 포인터 연산 포인터 연산은 포인터 값을 증가 혹은 감소 같은 연산을 하는 것을 말하는데. 가령 포인터에 1을 더하면 다음 메모리 번지로 이동하는 것을 말한다. 그런데 변수의 경우 각각의 타입에 따라서 메모리 번지의 크기가 다르다 그래서 포인터의 형(type)을 지정해 줌으로써 메모리 번지를 얼마큼 증가시..
- Total
- Today
- Yesterday
- qxd1000a
- 티스토리
- 소니 캠코더
- 블로그
- 티스토리챌린지
- CSS
- c언어
- 독서
- 소니 AXP35
- 박근혜
- 아이나비 탭 xd9
- 블랙박스
- 한빛미디어
- 오블완
- Sony
- 아이나비
- 아이나비 Tab XD9
- 팅크웨어
- Ai
- 아이나비 탭 XD11 Pro
- AXP35
- SM5
- 캠코더
- 서평
- 독후감
- 소니 핸디캠
- 소니
- X1 DASH
- 아이나비 패드
- 아이나비 태블릿
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |