목록2024/01 (11)
코드네임 :
2/1 - 어제 놂 ㅋㅋ ㅜㅜ 문자열은 배열의 구조를 가지며, 첫번째 문자의 주소로 쓰임 주소로 접근해서 문자열을 바꾸지 말것!! (ex. *"apple"='t' (첫번째 문자를 t로 바꿔라) 350p 여기서 잠깐!이 뭔 말인지 모르겟거 -> 아냐!!!! 그 최적화 여부 확인하는 코드 써보니까 바로 이해 됨 ㅋㅋㅋ 같은 문자열이면 어디에 저장해도 주소가 같네영 (같은 문자열 상수를 여러번 사용할 때 하나의 문자열에만 메모리를 저장하고 그 주소를 공유) scanf는 공백문자, 탭문자, 개행문자\n 이전까지만 저장함 gets는 공백문자, 탭문자, 개행문자\n 이후까지도 저장함 fgets 함수는 gets와 똑같으나(\n의 처리방식은 다르다네요) 최대 배열 크기까지만 문자열 입력 ( 배열의 크기 확인 가능 ) ..
11/27 + 11/30 제어문자 printf("대문자 : %c %c", cap, '\n'); //여기선 걍"%c\n"이랑 똑같.. 그 대신 처음처럼 쓴다면 바로 아래 코드에서 제어할 수 있음 scanf("%c%c", &ch1, &ch2); //if 여기서 a만 입력한다면 ch1에는 'a', ch2에는 '\n'이 저장되어 printf("[%c%c]", ch1, ch2); // 출력 시 [a 엔터 ]가 뜬다 getchar, putchar - 문자 전용 입출력 함수 getchar()한번 더 써야해서 입력 버퍼(의 개행문자(\n)) 비우는 법 : getchar();를 써준다... ch = getchar(); //ch에 문자 '하나'를 입력받음 342p 3번, 도전 문제
1/25 - 포인터와 배열 ... 하 어렵다 배열명 = 첫번째 배열 요소의 주소값 주소 + 정수 == 주소 + (정수 * 주소를 구한 변수의 크기) 307p 문제1 반쯤 틀려서.. ㅜㅜ 배열명ary = 첫번째 배열요소 ary[0]의 주소 포인터 연산식 *(ary+1) = ary[1] (pa가 첫번째 배열요소의 시작 주소를 가리킨다면, (double *pa = ary; 이면)) pa + 2 = 세번째 배열 요소 시작 주소 pa[3] = *(pa+3) (double *pb = ary +2; 이면,) *pb = ary[2] pb - pa = ( pb 가 가리키는 시작주소 - pa가 가리키는 시작주소 ) / sizeof(double) 308p 문제2도 반쯤 틀림.. int ary[5] = {1,2,3,4,5};..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
1/24 - 포인터 오늘부터 코드를 git 리포지토리에 연결하시오.. (했듬!!!) https://github.com/codenameVien/C_HONGONG 주소 = 메모리 공간의 '시작' 주소 %u : 부호없는 10진수 출력 %p : 16진수 출력 (주소 전용 변환 문자) int형 주소 : ㅇㅇ번지 ~ ㅇㅇ번지+3 (4바이트) double형 주소: ㅇㅇ번지 ~ ㅇㅇ번지+7 (8바이트) char형 주소: ㅇㅇ번지 (1바이트) pa = &a; 에서 만약 변수 a가 메모리 100번지부터 103번까지 할당되었다면 주소값 100이 pa에 저장됨. (시작 주소가 저장됨!!!!) *pa=10; == a=10; (*pa도 변수 a와 마찬가지로 = 의 왼쪽에 온다면 변수의 저장공간으로, 오른쪽에 온다면 pa가 가리키..
1/23 - 225p 부터 배열 & 포인터 전부 키보드 입력으로 값을 받고 그 값을 이용하는함수 = 매개변수 X 함수 데이터 받고 단지 화면에 출력 함수 = 반환값 X 함수 일정한 문자열을 출력하는 함수 = 반환값 X, 매개변수 X 함수 재귀호출함수(227p~228) : 자기 자신을 호출하는 함수!! ( 즉 return을 사용하지 않으면 무한정 호출하게 됨 ) "(return이있는)재귀호출함수는 자기 반환이 끝나면 이전 함수의 호출위치로 반환한다) (230p) #include void fruit(int count); int main() { fruit(1); return 0; } void fruit(int count) { printf("apple\n"); if (count == 3) return; frui..
보호되어 있는 글입니다.