분류 전체보기 (297) 썸네일형 리스트형 배열을 이용한 문자열 변수의 표현 char str [14] = "Good Morning!"; char str[ ] = "Good Morning!"; 위 문장들에서 볼 수 있듯이 이문장의 배열의 길이는 14이다. 그런데 공백문자와 !문자를 포함하여 13 문자인데 왜 길이가 14일까? 그것은 문자열 끝의 널문자('\0') 때문이다. 즉 문자열의 저장을 목적으로, char형 배열을 선언할 경우 널문자가 저장될 공간까지 생각해서 배열의 길이를 결정해야 한다. 5행에서 4행에서 선언된 배열의 크기를 출력하고 있는데, 출력 값은 14이다. 이는 널문자를 고려해서 배열의 길이가 결정된 결과이다. char형의 크기가 1바이트 이기 때문에 14라는 수가 나올 수 있었다. 그리고 위에서 볼 수있듯이 널문자의 아스키 코드값은 0이고 이를 문자의 형태로 출력.. c언어 포인터란? 우선 포인터 변수란? 메모리의 주소 값을 저장하기 위한 변수이다! int main(void) { int num = 7; // 정수 7이 저장된 변수 num선언. int * pnum; // 포인터 변수 pnum의 선언 pnum = # // num의 주소값을 포인터 변수 pnum에 저장 } ○ int * pnum; 의 문장이 포인터 변수의 선언이다. 1. pnum :포인터 변수의 이름 2. int * : int형 변수의 주소 값을 저장하는 포인터 변수의 선언. ○ pnum = # 위 문장에서 &연산자는 오른쪽에 등장하는 피 연산자의 주소값을 반환하는 연산자이다. 따라서 &연산의 결과로 변수 num의 주소 값이 반환되며, 이를 포인터 변수 pnum에 저장하게 된다. 포인터 형(type)이란? 우.. 코드업 1007번 문제 역슬래시\출력해보기. "C:\Download\hello.cpp"를 출력하는 예제이다. #include int main(void) { printf("\"C:'\'Download'\'hello.cpp\""); return 0; } '\' 작은따옴표 사이에 역슬래시를 넣으면 \ 출력이 될 거라 생각하였는데 ' '의 형태로 작은따옴표만이 출력이 되었다. #include int main(void) { printf("\"C:\\Download\\hello.cpp\""); return 0; } \를 출력하기 위해서는 \\의 형태로 역슬래시를 두 번 연속 입력해줘야 한다. 코드업 1006번 %출력해보기 "!@#$%^&*()"를 출력하는 예제이다. #include int main(void) { printf("\"!@#$%%^&*()\""); return 0; } 풀이에서 볼 수 있듯이 %를 출력하기 위해서는 %를 두 번 즉%%를 입력해줘야만 % 하나가 출력될 수 있다. #include int main(void) { printf("%%%%"); return 0; } 또 %%를 출력하고자 한다면 %를4개 입력해줘야 %%를 출력할 수 있다. 만약%%%만을 입력하였다면, %하나만 출력 값으로 나오게 된다. 이와 같은 규칙성으로 %%%를 출력하고자 한다면? #include int main(void) { printf("%%%%%%"); return 0; } 의 문장이 필요하다고 정리할 수 있다. ( C ) 코드업 1004,1005번 (큰따옴표 " "출력해보기) 코드업 c언어 기초 100제 중 1004 ,1005번을 풀어보았다. 우선 1004 번은 작은따옴표가 붙은 'Hello'를 출력하는 예제인데, #include int main(void) { printf("'Hello'"); Hello에 ' '를 붙여서도 출력이 되지만, return 0; } #include int main(void) { printf("\'Hello\'"); \' 역슬래시 따옴표의 형태로 문장을 입력하여도 같은 출력 값이 나온다. return 0; } 다음 1005번에서는 "Hello World"를 출력하는 문제이다. 양 문자의 끝에 큰따옴표가 붙어있는데, 이는 printf내에서 단순히 "Hello World"를 입력하면 컴파일 에러가 난다. #include int main(void) { p.. 열혈 c프로그래밍 11-2번(배열의 크기 와 길이) char형 1차원 배열을 선언과 동시에 다음 문장 내용으로 초기화하고 초기화 이후에는 저장된 내용을 출력하는 예제다. Good time 11-2번을 처음 푼 오답풀이이다. 서식 문자 % c가 char형과 함께 쓰이며, 문자의 형태로 데이터를 출력또는 입력하라 라는 의미를 가진다. 기본 자료형 변수들이 선언과 동시에 초기화하는 것처럼! 배열도 가능하다! 배열의 초기화 방법은 총 세가지이다. 1. int arr [3] = {1,2,3}; //순차적으로 1 2 3을 초기화한다. cf) 중괄호로 묶인 부분을 초기화 리스트라고 한다. 2. int arr [ ] = {1,2,3,4,5}; //컴파일러에 의해서 자동으로 5가 삽입이 된다. 이문장에서 볼 수 있듯이 초기화를 목적으로 초기화 리스트가 선언되면 배열의 길.. 열혈 c프로그래밍 11-1번(최대, 최소) 길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 5개의 정수를 입력받고 입력이 끝나면 적혀있는 내용을 출력하는 예제이다. 처음 11-1번을 풀때 접근한 방법이다. 최대 최소를 어떻게 나누어 구해야 할지 막막하였다. 결국 풀이를 보았고 풀이를 보아도 처음에 이해가 가지 않는 부분이 몇몇 있었다. 243행에서 왜? max = min =sum =arr [0] 일까?라고 생각을 하였는데, arr [0]은 배열 arr의 첫 번째 요소의 값으로 첫번째값이 곧 max이고 min이고 sum(합)이라는 사실을 깨달았다. 그리고, if절에서 조건식에 max < arr[n]. 이의 if블록 안에 max = arr [n]의 문장이 이해가 가지 않았다. 처음에 max의 값이 어떤값인지 알고 조건식에 위치해 있으며 m.. c언어 재귀함수의 이해 우선 팩토리얼 이란? 4! = 4 x 3 x 2 x 1 과 같다. 즉 4! = 4 x (4-1)! 이고 이는 4 x 3! 과 같다. 그러면 1!은? 1이다. 1!을 위와 같은 식으로 표현해 보면 1 x (1 - 1)! 이고 이는 1 x 0! 과 같다. 즉 0! = 1이 된다. 128행을 보면 factorial(1)이 있는데 116행의 factorial 함수에 1의 인자를 받을 int n이 있다. 이 함수에 1이 들어가면 우선, 1 * factorial( 1 - 1)이 시행이 된다. factorial(0)이 다시 호출되어 factorial(0)을 시행한다. 그런데 n ==0이면 1을 반환하므로 1이 앞으로 반환된다. 즉 1 * 1 = 1 이되어 128 행의 출력값은 1이된다. 131행에서는 factoria.. 이전 1 ··· 33 34 35 36 37 38 다음