본문 바로가기

C , C++7

C++_ Day1. (수정중) std::getline(); 개념은 책 참고. (p.22) 2020. 6. 21.
C_ 포인터와 배열의 관계 (수정중) int가 4 bytes이기때문에 +1한 주소값이 아닌 다음 4 bytes 공간의 첫번째 주솟값을 가진다. 그래서 -271632564 에서 +1 이 아니라 +4가된 주솟값을 가지게 된것. int arr[] = { 1, 2, 3, 4, 5 }; int arr[10]; int arr[10] = { 1, 2, 3, 4, 5 }; printf ("arr의 값 : %d\n", arr); 라고 입력하면 arr의 내용이 arr[0]의 주소 값과 같다는걸 볼 수 있다. 즉, arr는 &arr[0]와 같다 2020. 6. 7.
C_ 포인터 [가정] 포인터가 필요한 이유는 a의 값이 중간에 변하더라도 그때그때마다 달라진 값을 유동적으로 알아와야 하는 상황이 있기 때문이다. a의 500이라는 값을 딱 지정해서 가져오지 않고 그 공간의 주소를 포인트 함으로서 그때의 a의 값을 가져올 수 있다. [예시] int a=20; 이 아닌 char a = ' c '; 였다면 char *ptr_a; 여야 한다. * 를 붙여서 보통 변수와는 다른 포인터라는 변수임을 보여준다, &는 그 포인터가 가르키는 변수의 주소값이다. prt_a 는 1636984 라는 주소값을 품고 있고, 그렇기 때문데 그 주소에 저장되어 있는 (들어 있는) 순수한 값인 '20'을 *ptr_a의 값으로 가진다. => prt_a 는 1636984 이고, *prt_a 는 20 이다. [포인터.. 2020. 6. 7.
C_ 문자열과 string (주의할점 모음!) 문자열 vs String C++ 에서는 string이라는 새로운 자료형을 사용하기 때문에 배열형태의 문자열을 잘 쓰지는 않을거지만, C 에서는 문자형 배열 ( char str[] )을 선언해서 문자를 구현하는 방법 밖에 없다. 질문) 문자열에서는 띄어쓰기가 안된다는게 어떤걸 말하는 거였더라.... 항상 주의해야할 포인트! 1) 문자열의 끝에는 \0 라는 null값이 들어있다 "Hello, world!" 뒤에는 문자열의 끝임을 의미하는 '/0' 이라는 null값이 마지막 인덱스에 들어있기 때문에 배열의 크기(길이)는 13이 아닌 14이다. 2) 입력받을때 주의 문자열을 입력받거나 출력 할때는 ' &s '가 아닌 ' s '여야 한다. 3) #include : 문자열을 사용하려면 헤더파일을 추가해야함. ( C.. 2020. 6. 7.