register int 와 int 의 수행속도 차이 비교 C언어든 C++이든 결국 컴파일러를 거치면 어셈블리로 전환이 될 것입니다. 이는 곧 기계어이며 하드웨어와 연관이 있는 언어이므로, 하드웨어와 관련있는 코딩 구문들도 상당수 존재합니다. 그 중 register int 에 대해 확인 해 보도록 하겠습니다. int main() { int tmp1 = 0; int tmp2 = 0; clock_t clk1 = clock(); for (int i = 0; i < 10000; i++) { for (int j = 0; j < 10000; j++) { tmp1 += i; } } cout
우선 아스키 코드표를 보자 아스키 코드에 대해서 간단히 설명 하자면 ANSI에서 제정한 문자 코드 표 이며, 간단히 말하자면 1바이트로(8비트) 128개의 문자를 표현한것이다. 8비트는 2의8승개의 서로 다른 상태를 나타낼 수 있다. 그렇기 때문에 0~127까지의 숫자에 문자를 매핑 시킬 수 있는 것이다. 아스키 코드표에서 보면 0이라는 숫자에 '\0'이라는 문자가 매핑 되어있다. '\0'이라는것이 바로 NUL이라는 문자다. (NULL이 아니다!! 둘은 다른것이다.) NULL이라는 것은 숫자 0으로 #define 되어 있다. 즉 다시 말해서 c와 c++에서 NULL == 숫자 0 == '\0'는 동일한 의미로 쓰인다. 숫자 0과 문자 0 은 다르다 다시 표로 돌아가서 숫자 0~9와 문자 0~9가 다르다는..
[초급] 문자열 비교 01. 문자열 길이 구하기int main() { char *s1 = "Hello"; // 포인터에 문자열 Hello의 주소 저장 char s2[10] = "Hello"; // 크기가 10인 char형 배열을 선언하고 문자열 할당 printf("strlen = %d\n", strlen(s1)); // 5 : strlen 함수로 문자열의 길이 구함 printf("strlen = %d\n", strlen(s2)); // 5 : strlen 함수로 문자열의 길이 구함 return 0; } 02. 문자열 비교하기 값이 같으면 0, 앞에 것이 크면 1, 뒤에 것이 크면 -1 int main() { // a는 ASCII 코드로 97 // b는 ASCII 코드로 98 // c는 ASCII 코드로 ..
[초급] 문자열 입력받기 01. Char 변수에 문자 입력 받기 1) scanf 사용하기 (기본) int main() { char c; scanf("%c", &c); // 문자를 입력받아서 변수에 저장 printf("%c\n", c); // 변수의 내용을 출력 return 0; } 2) getchar 사용하기 int main() { char c = getchar(); // 문자 하나를 입력받음 printf("%c\n", c); return 0; } 02. Char 배열에 문자열 입력 받기 int main() { char string1[10]; // 크기가 10인 char형 배열을 선언 char string2[30]; // 크기가 30인 char형 배열을 선언 scanf("%s", string1); // ..
[초급] 문자열 입력받고 하나씩 자르기 입력값이 12345 와같은 값으로 들어올때 int 배열의 하나의 공간에 각 한자리 숫자 값을 입력 받는 방법이다. #include int main() { char str[50]; int val[10]; scanf("%s", &str); for (int i = 0; str[i] != '\0'; i++){ val[i] = str[i] - '0'; printf("%d ", val[i]); } return 0; } input 값이 12345 인 경우 char str 배열에 들어가는 입력 값은 str[0] 부터 str[4] 까지 차례로 1,2,3,4,5 가 되며 코드 수행시 아래와 같이 출력 된다. 1 2 3 4 5 끝.