전체 글83 [실험] #22 C언어 atoi함수를 &이랑 같이 쓰는 법 예제를 풀다가 atoi함수 안에 배열이 있는게 아니라 주소값이 들어가 있는걸 발견했습니다. 책에는 주소값 얘기는 없고 분명 문자배열이 숫자로 구성되어 있다면 이걸 인티저로 바꾸는 함수라는 설명 밖에 없었는데 갑자기 주소값?? 그래서 제가 실험해봤습니다. 배열 중간 주소값을 atoi에 할당 2. 배열 중간에 \n와 \0를 삽입하여 어디까지 출력되는지 보기 결과는 항상 같았습니다. 그러니까 책에 나오는 int i = atoi(str); 는 str 자체가 배열의 시작주소값을 의미하기에 배열의 시작부터 끝까지를 인티저로 바꾼다는 뜻이었고 int i = atoi(&str[2]); 라는 코드가 있다면 이건 str[2]부터 str배열의 끝까지를 인티저로 바꾼다는 뜻이었습니다. 그리고 문자열을 인식하는 기준은 \n 와.. 2022. 8. 7. #21 C언어 그냥 써보는 잡담... 변수이름에 comp라는 단어가 들어가는데 이건 무슨 뜻일까 C언어 연습문제 풀다가 든 의문. 변수이름이 CompName CompAge인 경우가 있는데 이 때 Comp는 어떤 단어의 축약어일까? 하는 의문이 생겼습니다. 예비 후보 1번은 computation(유력)이고 2번은 compose입니다. computation은 컴퓨터적 사고 할때 많이 쓰는 단어고 단어 뜻도 '계산'이라서 이거 일거 같은데 compose도 창조하다 구성하다의 의미가 있어서 살짝의 가능성이 있긴합니다. 구글 검색을 돌려보니 코볼이라는 언어에서 comp variable이라는 comp라는 이름을 가진 변수가 있나본데 이때의 comp는 computation의 의미라서 이거지 않을까 싶습니다. 코볼은 오래된 언어니까. 저도 다른 문제풀때 간지나게 Compnum 이렇게 써야겠어요ㅎㅎ 개인적으로 퀘세.. 2022. 8. 7. [실험] #20 C언어 fgets gets scanf의 차이를 확실하게 알아보자 \0\n의 차이점도 같이 알아보자 우선 \0은 아스키 코드로 0 즉 (int)0이고 \n은 아스키 코드로 10 즉 (int)10입니다. 의례 말하는 널, NULL은 \0을 뜻하고 \0은 문자열의 끝을 알려주는 문자입니다. 대부분의 함수가 문자열을 처리할때 \0를 참조합니다. 그에 반해 \n는 개행문자 줄바꿈문자라고도 부르며 쉽게 이해하자면 우리가 엔터를 누르면 입력되는 문자입니다. \0와 \n를 이해했다면 이제 fgets, gets, scanf에서 \n과 \0이 어떻게 기능하는지 알 수 있습니다. 먼저 scanf는 엔터(\n)전까지 읽어들입니다. 그리고 자동으로 문자열 제일 끝에 \0을 붙여준다. (엔터 전!!까지 읽는다는게 매우 중요한 개념입니다.) gets는 엔터(\n)를 저장합니다. 그런데 자동으로 엔터(\n)를 \0로 바꿉니다. .. 2022. 8. 7. 이전 1 ··· 13 14 15 16 17 18 19 ··· 28 다음 반응형