17:00 [ ]과 *( + ) 세 연산자는 같다. 배열 자체가 주소 계산을 통해 값에 접근하는 것이라 포인터도 배열로 사용할 수 있다. 배열명을 저장한 포인터는 배열처럼 사용할 수 있다. 18:30 배열명은 상수이고, 포인터는 변수의 개념으로 접근하라. 배열명으로는 산수를 할 수 없다. 즉 상수여서 직접 배열명 자체를 바꾸지 않는 이상 바꿀 수 없다. 이는 공간으로 사용할 수 없다는 것을 의미한다. 이에 반해 포인터는 변수이고, 이 포인터 변수가 가리키고 있는 변수의 값을 바꿀 수 있다. 즉, 공간으로 사용할 수 있다. 만약 포인터 변수 값 자체를 변경하면서 사용하고 있다면 그 값을 추적해가며 사용해야 한다. ***정리 1) 배열명 특징: int a[5];를 선언했을 때 a = a+1 등과 같이 L value로써 공간으로 사용할 수 없다. 장점: 주소값 자체를 갖고 있는 상수로써 값이 변하지 않는다. 그래서 항상 그 값을 유지하며 사용할 수 있다. 단점: 상수의 역할을 하여 그 값을 바꿀 수 없으므로, 값을 바꿔가며 공간으로 사용할 수 없다. 약간 번거롭다. 2) 포인터 특징: int *p =a;를 선언했을 때 p=p+1 등과 같이 L value로써 사용할 수 있다. 장점: 변수 역할을 하며, 값이 언제든 변할 수 있다. 연산을 하여 값을 변경할 수 있으며, 편하게 값을 변경하여 사용할 수 있다. 단점: 포인터 변수 값 자체를 변경하며 사용했다면, 그 값을 계속 추적해가며 사용해야 한다. 변경된 주소값을 사용하게 된다면, 결국 다른 값을 사용하게 된다. 36:00 포인터끼리의 합, 곱, 나누기는 불가능하지만 차가 가능한데, 이것이 의미하는 바는 앞쪽에 쓴 배열이 뒤에 쓴 배열에 비해 위치가 앞에 있느냐? 뒤에 있느냐?를 알 수 있다는 것이다.
인강도 여러개 봤었는데 이게 가장 수준이 높네요. 고맙습니다.
대학도 두곳 이나 다녀보고 인터넷 강의도 여러 개 봤는데 아직도 석연치 않았던 부분을 해결해 주셨습니다. 이게 강의네요.
와... 이전에 들었을땐 귀에 안들어왔는데기초 조금 다지고 오니까 귀에 쏙쏙 박히네요명강의 감사합니다 ^^
개꿀강의다 진짜
+김칸나 (즐거운번역가) 좋은 말씀해주셔서 감사합니다! 더욱 노력하는 한빛미디어 되겠습니다.
감사합니다.. 이거보니깐 많이정리도되고. 몰랐던점도많이알게됬네요..가끔 이렇게하면 어떨가생각했었는데 답이됬어요!!
+jeungmin kim 좋은 말씀해주셔서 감사합니다! 더욱 노력하는 한빛미디어 되겠습니다.
안녕하세요. 감사히 잘 봤어요.
17:42 배열명: 상수 포인터: 변수
2023년 8월 17일 목 17시52분 태평양 시간
진짜 강의력이..대학교 왠만한 교수보다 나으신거 같습니다..
훌륭하십니다 완벽하게 이해가 되었어요
감사합니다~
+김명규 감사합니다! 더욱 노력하는 한빛미디어 되겠습니다.
c처음 하는데 최고 입니다.
강의 잘 들었습니다. 고맙습니다.
오 몰랐던 내용이 확실히 정리돼요 ㅎㅎ
^ ^ 고맙습니다.
37:20 포인터에 대해 수행 가능한 연산
- 간접참조,주소연산, 사이즈오브, 관계연산자,덧셈,뺄셈, 포인터끼리의 차이
-곱셈,나눗셈,포인터끼리의 덧셈,나눗셈,곱셈은 안됨
6:09
Q.배열 첫번째 요소의 주소값과 동일한 배열명 a에 정수를 더한 결과는 정수값 or 주소값?
A.주소값으로 처리됨
31:57에 int *p = a+3 이 돠면 안됩니다. 오류인듯하네요 저 문제처럼 사용하시려면 int *p = &a[3] 로 사용하셔야 합니다
컴파일러 마다 되는 경우가 있어요 저는 dev c++써서..아마 visual studio는 될겁니다
이런 강의 첨 봄 이게 디테일
17:00 [ ]과 *( + ) 세 연산자는 같다. 배열 자체가 주소 계산을 통해 값에 접근하는 것이라 포인터도 배열로 사용할 수 있다.
배열명을 저장한 포인터는 배열처럼 사용할 수 있다.
18:30 배열명은 상수이고, 포인터는 변수의 개념으로 접근하라. 배열명으로는 산수를 할 수 없다. 즉 상수여서 직접 배열명 자체를 바꾸지 않는 이상 바꿀 수 없다. 이는 공간으로 사용할 수 없다는 것을 의미한다.
이에 반해 포인터는 변수이고, 이 포인터 변수가 가리키고 있는 변수의 값을 바꿀 수 있다. 즉, 공간으로 사용할 수 있다. 만약 포인터 변수 값 자체를 변경하면서 사용하고 있다면 그 값을 추적해가며 사용해야 한다.
***정리
1) 배열명
특징: int a[5];를 선언했을 때 a = a+1 등과 같이 L value로써 공간으로 사용할 수 없다.
장점: 주소값 자체를 갖고 있는 상수로써 값이 변하지 않는다. 그래서 항상 그 값을 유지하며 사용할 수 있다.
단점: 상수의 역할을 하여 그 값을 바꿀 수 없으므로, 값을 바꿔가며 공간으로 사용할 수 없다. 약간 번거롭다.
2) 포인터
특징: int *p =a;를 선언했을 때 p=p+1 등과 같이 L value로써 사용할 수 있다.
장점: 변수 역할을 하며, 값이 언제든 변할 수 있다. 연산을 하여 값을 변경할 수 있으며, 편하게 값을 변경하여 사용할 수 있다.
단점: 포인터 변수 값 자체를 변경하며 사용했다면, 그 값을 계속 추적해가며 사용해야 한다. 변경된 주소값을 사용하게 된다면, 결국 다른 값을 사용하게 된다.
36:00 포인터끼리의 합, 곱, 나누기는 불가능하지만 차가 가능한데, 이것이 의미하는 바는 앞쪽에 쓴 배열이 뒤에 쓴 배열에 비해 위치가 앞에 있느냐? 뒤에 있느냐?를 알 수 있다는 것이다.
카페에 질문을 올려주시면 저자님이 답변을 해드립니다. 참고하세요~
► 바로가기: cafe.naver.com/thisisc
24:00
이어보기
ㅇㄴ 수준봐....우리 교수님보다 잘가르치시는듯
왼쪽 공간 오른쪽 값..이게 ㄹㅇ 쏙 들어와서 이해했어요...
배열명은 상수이고 값이 변화할수없다.
포인터는 변수 값이 변화할수있다.
활용할수있다. 자신의 값을 바꾸면서 사요알수있다.