목록C언어 복습 (18)
메모장

문제1 20부터 11까지 거꾸로 합산하는 기능 작성(외부함수 생성X) 더보기 문제2 1~20사이 정수 중 홀수만 출력하라 더보기 문제 3 for문을 이용하여 1~10~1 출력 더보기 문제 4 정수원소 10개를 가진 배열을 준비하고 무작위 수로 초기화하고 모든원소의 값을 표시하라 더보기 문제 5 반복문을 이용하여 배열의 좌,우 요소 바꿔치기 (배열의 크기는 5로 한다, 예) arr[1] arr[3], arr[4] arr[0]) 더보기 문제 6 반복문을 이용하여 배열 내의 최댓값 구하기 (배열의 크기는 5) 더보기 문제 7 배열 만드는 외부함수 (배. 크. 5) 더보기 문제 8 1~5까지 저장한 배열을 생성하고 그 배열을 다른 함수에 전달하여 뒤집어진 배열을 리턴하는 함수를 작성하라 더보기

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ ▣ '배열이름'이 '배열의 첫 요소 포인터'로써 인식될 수 없는 상황들 - 배열이름[인덱스] ≠ *(배열이름+인덱스) 인 경우 ①배열이름이 주소연산자의 피연산자로 쓰인 경우 &배열이름 ②sizeof연산자의 피연산자로 쓰였을 경우 sizeof(배열이름) ③char 배열을 초기화할때 문자열이 쓰였을 경우 char 배열이름[]="HelloWorld"; ▣ 포인터 배열 - 배열인데 요소가 포인터 - 원시 자료형(int, float 등) 배열 선언 자료형 배열이름[개수] 예) int arr[10]; - 포인터배열 선언 포인터형 배열이름 [개수]; 예) char* charArr[10]; ▣ 함수 포인터 - 말 그대로 함수..

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ 비트는 1, 0이 들어갈 수 있는 정보저장의 최소단위 메모리는 비트들이 1차원적으로 붙어있는 형태 메모리는 1바이트(8비트)마다 주소가 매겨져 있다 -> 포인터는 "메모리주소"를 의미 / 메모리주소를 저장할 수 있는 변수가 포인터 변수 ▣ 변수의 주소를 사용하는 방법 - 주소연산자(&)를 변수 이름 앞에 붙여 메모리상 어느 위치에 있는지 알 수 있다 -> 어디서 많이 본 듯 하다면 scanf에서 사용자에게 입력을 받을 시 사용하던 그 친구이다 scanf는 선언된 변수의 주소를 참조하여 입력값을 넣는 것이였다 - 변수의 메모리주소(포인터)를 출력한 결과가 숫자+알파벳인 이유 ->16진수 형식 2진수를 3개 혹은 ..

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ ▣ 배열 동일한 종류의, 수많은 변수를 한꺼번에 선언해서 관리해야할 때 사용 ▣ 배열의 선언 - 배열 선언하기 변수를 만들 때 필요한 정보 1. 어떤 자료형의 변수를 만들 것인가 2. 어떤 이름으로 변수를 참조할 것인가 - 배열을 만들 때 필요한 정보 1. 어떤 자료형의 배열을 만들 것인가 2. 얼마나 많이 만들 것인가 3. 어떤 이름으로 배열을 참조할 것인가 - 선언하기: 자료형 배열이름[개수]; 예) int a[1000]; 배열을 통해 선언한 int변수는 메모리상에서 딱 붙어서 하나의 큰 덩어리로 보인다 -> 4바이트짜리 10개 총 40바이트가 확보된다 - 배열의 한계 한계보다 많이 선언하게 되면 프로그램 ..

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ ▣ 자료형의 대분류 : 정수형 / 실수형 ▣ sizeof 연산자 - 정수형, 실수형의 구분 안에서 크기에 따라 자료형 한번 더 분류 - 자료형의 크기: 특정 자료형으로 변수를 선언했을 때 변수가 메모리에서 차지하는 공간의 크기 -> sizeof 연산자를 통해 자료형의 크기 파악 가능 예) ※sizeof 연산의 결과값은 size_t 자료형의 데이터 -> size_t는 C언어 표준에 의해 양의 정수(unsigned int)로 정의 but 크기는 4, 8바이트 C99 표준에서부터 8바이트 양의 정수를 출력할 수있는 %zu 사용가능(dev에서는 지원X) 대신 %Id(signed size_t)와 %Iu(unsigned ..

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ 예) what's your name? (입력) hi (입력받은 문자열)! ▣ 문자와 문자열의 차이 문자: 글자 하나를 가리킬 때 사용 문자열: 문자의 배열이라는 뜻으로, 2개 이상의 문자가 모이면 문자열 - "Hello", "World" C언어에서 문자는 ' , ' (작은 따옴표) // 문자열은 " , " (큰 따옴표)로 표시 ▣ 문자와 문자열을 만드는 방법 1. 문자의 자료형 char 8bit(=1bite) ->선언 방법: 초기화 방법 모두 정수/실수형과 동일 초기화 시: 초기화 할 문자는 작은 따옴표로 묶는다 예) char LTT='V'; 2. 문자열은 자료형이 별도로 X, 문자를 여러개 묶어서 만들어야 한..
참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ ▣ 진짜 랜덤, 가짜 랜덤, 난수 생성 방법 - 랜덤의 종류 1. 진짜 랜덤: The REAL, 물리적인 자연현상을 이용해 난수를 생성하는 방식 가짜 랜덤 방식에 비해 난수 생성 속도가 느리다 2. 가짜 랜덤: 계산 결과의 예측이 어려울 뿐 복잡한 점화식을 이용해 난수를 생성하는 방식 예측 사능성이 있고, 주기가 있다 ▣ 시드를 설정해주는 srand() - C언어의 난수 발생 함수 -> 가짜 랜덤 방식을 이용: 시드(seed) 설정 필요 시드: 가짜 랜덤 방식은 점화식에 숫자를 넣어 결과 계산 -> 그 값을 다시 식에 넣어 결과 계산의 반복 ∴ 입력해주어야 하는 첫 번째 항 = 시드 1. 시드를 설정해주는 함수..

참고: 정덕 - ♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨ ▣ 10진수를 2진수로 표현하기 1. 사용자로부터 10진수 입력받기 2-1. 첫번째 비트(가장 오른쪽)가 1인지 0인지 확인 ->1과 숫자를 &로 연산 => 1이면 1 아니면 0 출력 2-2. 시프트 연산자를 이용 n번째 비트가 1인지 0인지 확인 2-3. 반복문을 통해 모든 비트 출력하기 ▣ 비트? Bit! -> 데이터를 나타내는 최소 단위. 모든 데이터는 0과 1의 조합으로 구성되는데, 이 0또는 1이 하나의 비트가 됨. 1개의 비트는 두 가지 상태를 나타낼 수 있으므로 n개의 비트로는 2ⁿ가지의 상태를 나타낼 수 있음 (출처 - 킹무위키) (2진수 = 비트, 라고 생각하는 것이 편하다) 컴퓨터는 2진수로(..