목록전체 글 (116)
while (1): study();

두 명의 나이와 키를 입력한 후에 바꾸어 출력합니다. 단, 나이와 키를 바꾸는 함수는 int형과 double형을 모두 교환할 수 있도록 하나의 함수로 구현하세요. #define _CRT_SECURE_NO_WARNINGS #include #include void swap(char*, void*, void*); int main(void) { int age1, age2; double h1, h2; printf("첫 번째 사람의 나이와 키 입력 : "); scanf("%d%lf", &age1, &h1); printf("두 번째 사람의 나이와 키 입력 : "); scanf("%d%lf", &age2, &h2); swap("int", &age1, &age2); swap("double", &h1, &h2); prin..

여기서는 이중 포인터, 배열 포인터, 함수 포인터, 그리고 void 포인터의 의미와 용례를 살펴본다. 1. 이중 포인터 이중 포인터란 포인터의 주소를 저장하는 포인터이다. 일반적으로 깊이가 3 이상인 (포인터의 포인터의 포인터부터) 다중 포인터라고 부르는데, 가독성 문제로 잘 사용되지는 않는다. // 이중 포인터 선언 int **ppi; 포인터 선언에서 중요한 것은 포인터가 가리키는 자료형과 포인터 자신의 자료형이다. 따라서 다음 선언문은 다음과 같이 분해할 수 있다. 정수포인터를 가리키는 포인터 변수임을 쉽게 알 수 있다. // int*형을 가리키는 포인터 int* (*ppi); 이중 포인터는 다음과 같이 함수의 매개변수를 받을때 유의미하게 사용할 수 있다. 활용1. 포인터 값을 바꾸는 함수의 매개변수..

5행 6열의 2차원 배열을 선언하고 4행 5열 부분은 1부터 20까지 초기화합니다. 초기화된 배열에서 마지막 열의 요소에는 각 행의 합을 저장하고 마지막 행의 요소에는 각 열의 합을 저장한 후 전체 배열의 값을 출력하세요. #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int i, j; int ary[5][6] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20} }; // 행의 합계 for (i = 0; i < 4; i++) { for (j = 0; j < 5; j++) { ary[i][5] += ary[i][j]; } } // 열의 합계 for (i =..

1. 지역 변수(Local variable) = 자동 변수(Auto variable) #include void assign(void); int main(void) { auto int a = 0; # 지역변수 할당은 auto 예약어(생략 가능) 사용 assign(); printf("main 함수 a: %d\n", a); # 0을 반환 return 0; } void assign(void) { int a; a = 10; printf("assign 함수 a: %d\n", a); # 10을 반환 } 특징 사용 범위가 블록 내부로 제한되므로 다른 함수에서는 사용할 수 없다. 이름이 같아도 선언된 함수가 다르면 각각 독립된 저장공간을 갖는다. 메모리를 효율적으로 사용한다. 디버깅에 유리하다. 사용 가능한 변수가 둘 ..

14. 반복형, 반복자, 제네레이터 파이썬은 반복형(Iterable)에서 반복자(Iterator)를 가져온다. 반복형 __iter__(): 반복자를 새로 생성 __iter__() 확인 -> __getitem__() 확인 (하위 버전과의 호환성) -> TypeError * 반복형은 반복자로 작동하면 안된다. 다중 반복을 지원하려면 여러 독립적인 반복자를 가질 수 있어야하며, 각 반복자는 고유한 내부 상태를 유지해야 하기 때문. 반복자 __next__(): 다음 항복 반환, 없으면 StopIteration __iter__(): 편의상 self 반환 제네레이터 함수 - 본체 안에 yield 키워드를 가진 함수, 제네레이터 팩토리 - 제네레이터 객체를 반환 - return은 오직 StopIteration 예외를..

8. 객체 참조, 가변성, 재활용 변수 변수는 객체에 붙은 레이블 변수가 객체에 바인딩됐다는 표현이 타당함 정체성 정체성은 메모리 내의 객체 주소, is연산자는 두 객체의 정체성을 비교 * is연산자가 ==연산자보다 빠르다. 참조로서의 함수 매개변수 1) call-by-value: 값을 복사 (원본 변경 x) 2) call-by-reference: 참조를 복사 (원본 변경 o) 3) call-by-sharing: 객체 참조를 복사 (가변형 변경 o, 불변형 변경 x) -> 정체성 변화 x * 가변형을 매개변수로 사용하는 경우 1) 기본값으로 사용: 모듈 로딩 시 평가, 기본값은 함수 객체의 속성 -> 불안정 class HauntedBus: def __init__(self, passengers=[]): #..

5. 일급 함수 일급 객체 1. 런타임에 생성 가능 2. 데이터 구조체의 변수나 요소에 할당 가능 3. 함수 인수로 전달 가능 4. 함수 결과로 반환 가능 고위 함수(higher-order function): 함수를 결과로 반환하는 함수 map(), filter() -> 컴프리헨션의 등장으로 중요성 저하 reduce() all(): 모든 iterable이 참이면 true any(): iterable이 하나라도 참이면 true 람다: 최대한 안 쓰는게 좋음 (가독성) 매개변수 *을 기점으로 위치 매개변수와 키워드 매개변수를 나눔 def f(a, *, b): # b는 기본값이 지정되지 않은 키워드 매개변수 return a, b * 매개변수 추출: inspect 이용 from inspect import sig..

2. 시퀀스 분류 컨테이너 시퀀스: 서로 다른 자료형의 항목을 담을 수 있음, 객체 참조를 담음 ex) list, tuple, collections.deque 균일 시퀀스: 단 하나의 자료형만 담을 수 있음, 객체의 값을 직접 메모리에 할당 ex) str, bytes, bytearray, memoryview, array.array 가변 시퀀스: list, bytearray, array.array, collections.deque, memoryview 불변 시퀀스: tuple, str, butes array.array: 수치 연산에 최적화 Memoryview: 데이터 구조체를 복사하지 않고 메모리 공유 bisect 순서 유지하면서 항목 추가 : bisect.insort() 정렬된 시퀀스를 효율적으로 검색 ..

1. 파이썬 데이터 모델 특별 메서드 사용자 정의 객체도 내장형 객체처럼 작동하게 함 인터프리터가 호출하기 위함 문자열 __repr__: 디버깅 및 로그에 사용하는 형태, __str__이 없을 시 default __str__: 사용자에게 보여주기 위한 형태 * MOP(Metaobject protocol): 하위 레벨 추상으로 상위 기능 구현

Examtopics의 덤프 문제를 풀면서 새로 알게된 정보들을 정리해 보았습니다. https://www.examtopics.com/exams/microsoft/az-900 Ace Microsoft AZ-900 Certification with Actual Questions | ExamTopics www.examtopics.com Web tier plans Basic Standard Storage (per instance) 10GB 50GB Instances Up to 3 Up to 10 Data redundancy 1) Locally-redundant storage: 3 copy on the basic region (default of Azure Storage Account) 2) Zone-redunda..