728x90
반응형
#include <stdio.h> int main(void) { int iNum1=1; char str[4]; int iNum2=2; printf("iNum1 출력: %d \n", iNum1); printf("str 출력: %d \n", str[4]); printf("iNum2 출력: %d \n", iNum2); printf("iNum1 주소 출력: %p \n", &iNum1); printf("str 주소 출력: %p \n", &str); printf("iNum2 주소 출력: %p \n", &iNum2); scanf("%s", str); printf("[%s] \n", str); printf("iNum1: %d \n", iNum1); printf("iNum2: %d \n", iNum2); return 0; }
char str[4];
입력 -> [1] 출력 -> 1, 입력 -> [11] 출력 -> 1, 입력 -> [111] 출력 -> 1, 입력 -> [1111] 출력 -> 0, 입력 -> [11111] 출력 -> 49(1의 ASCII code),
입력 -> [111111] 출력 -> 12593(Decimal, 3131 Hexa)
즉, 배열에 |1|1|1|\0 4칸을 준 상태에 마지막은 Null(\0) 값이 있었다. 이 상태에서 추가로 1을 더하게 되면 |1|1|1|1|\0 이렇게 NULL 값이 나오게 된다. 그래서 0이 출력된다. 그리고 |1|1|1|1|1 이렇게 ASCII코드 값(49) 1이 출력된다. 또 12593은 1의 Hexa 값을 10진수로 변환값이다.
열혈 C프로그래밍(gets, fgets) -> 해킹 때문에 fgets를 사용하는 것을 권장한다.
DOS창에 입력을 하게 되면 엔터 치기 전 입력된 값은 입력버퍼에 위치하게 된다.
열혈 C프로그래밍(444 page) atoi 예제. 문자열 123을 숫자 123으로 만들기.
#include <stdio.h> int main(void) { char A[]="123"; int iNum; iNum=(A[0]-'0')*100 + (A[1]-'0')*10 + (A[2]-'0'); printf("%d \n", iNum); return 0; }
728x90
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
비주얼 스튜디오 패키지 오류 삽질기... (0) | 2016.04.13 |
---|---|
20160405_조재찬_업무일지_포인터와 배열 (0) | 2016.04.12 |
20160411_장진웅_업무일지_구조체로 도서관 프로그래밍 (1) | 2016.04.11 |
20160408_장진웅_업무일지_공장내 Network_네트워크 기초 (0) | 2016.04.11 |
20160406_김도관_업무일지_C언어기초_02 (0) | 2016.04.11 |
20160410_김가연_스터디일지_구조체 변수의 연산+gets puts 함수 정리 (1) | 2016.04.10 |
비주얼 스튜디오 삭제방법 (2) | 2016.04.10 |
20160409_김가연_스터디일지_구조체의 정의 (2) | 2016.04.09 |