목록C (14)
고양이와 코딩
1. Two Sum Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice.You can return the answer in any order. Example 1:Input: nums = [2,7,11,15], target = 9Output: [0,1]Explanation: Because nums[0] + nums[1] == 9, we return [0,..
* 특정한 타입의 변수의 '값'을 바꾸려면, 특정한 타입을 가리키는 포인터로 인자를 취해야 한다 ! ** ex) 특정한 타입이 int* 일 때, int* 타입을 가리키는 포인터의 타입은 int** * 문제 1. 사용자로부터 5명의 학생의 수학, 국어, 영어 점수를 입력 받아서 평균이 가장 높은 사람부터 평균이 가장 낮은 사람까지 정렬되어 출력하도록 하세요. 특히, 평균을 기준으로 평균 이상인 사람 옆에는 '합격', 아닌 사람은 '불합격'을 출력하게 해보세요. #include #define NUM_STUDENTS 5#define NUM_SUBJECTS 3/* 학생들의 점수, 각 학생의 평균점수, 각 학생의 합/불 여부를 저장하는 배열 선언*/int scores[NUM_STUDENTS][NUM_SUBJ..
하면 할수록 헷갈림 * 함수 포인터의 일반적인 정의 *(함수의 리턴형) (*포인터 이름) (첫 번째 인자 타입, 두 번째 인자 타입 ,,,,)#include int pswap(int **pa, int *pb);int main() { int a, b; int *pa, *pb; pa = &a; pb = &b; printf("pa가 가리키는 변수의 주소값: %p \n", pa); printf("pa의 주소값: %p \n", &pa); printf("pb가 가리키는 변수의 주소값: %p \n", pb); printf("pb의 주소값: %p \n", &pb); printf(" ------------- 호출 -------------- \n"); pswap(&p..
/* 10개의 원소를 입력받고, 그 원소를 큰 순으로 출력하는 함수를 만들어 보세요 */#include #include void maxOfArray(int arr[], int n); // 함수의 원형 선언int main(){ int arr[10]; int i; printf("10개의 원소를 입력하세요: \n"); for (i = 0; i main함수를 맨 위에 작성할 경우, 아래에 있는 함수들을 함수의 원형으로 선언해준다. maxOfArray(arr, 10);C 언어에서 배열은 함수에 인자로 전달될 때 배열의 첫 번째 요소의 주소가 전달된다. 이는 배열 전체에 접근할 수 있음을 의미한다!따라서 maxOfArray 함수에 전달된 arr는 배열 전체를 가리키고 있으므로 배열의 모든 요..
포인터! c언어에서 가장 이해하기 어렵고(...) 메모리 관리에서 아주 중요한 요소이다컴퓨터의 메모리에 보다 직접적으로 접근해서, 이를 제어할 수 있도록 도와주는 도구! C언어에서 포인터를 정의하는 방법(포인터에 주소값이 저장되는 데이터의 형) * (포인터의 이름);(포인터에 주소값이 저장되는 데이터의 형) * (포인터의 이름);int *p;int* p; 포인터를 정의 한 후, 주소값을 집어넣는 방법& 연산자 사용 (and 연산자와의 차이점은, &를 사용할때 피연산자가 두 개 있어야 한다는 점!)&a#include int main() { int a; a = 2; printf("%p \n", &a); return 0;}// 0x16fdfe038 16진수 형태(%p)로 출력16자리가 ..
비트(bit): 컴퓨터에서 숫자의 최소 단위. 1비트는 0 or 1을 나타냅니다.8비트 == 1바이트 비트 연산자의 종류AND (&)- 모두 1일때만 1OR (|)- 하나만 1이여도 1XOR (^)- 두 수가 달라야지 1> (쉬프트)- 좌측 쉬프트 (- 우측 쉬프트 (>>) 일 때, 오른쪽 쉬프트 숫자가 갈 자리가 없다면 버려짐. 좌측 쉬프트와는 다르게 마지막 숫자가 0으로 무조건 채워지는게 아니라, 맨 왼쪽에 있던 숫자로 채워지게 됨 삼항연산자조건 ? TRUE : FALSE;ex) num1 > num2 ? num1: num2;조건이 참이면 연산 결과로 num1이 반환, 거짓이면 num2가 반환 ((x) = (((x) != 0U) ? 0U : 1U))x가 0U의 값과 다르다면, x의 값을 반전시킨다(반대..