정보처리,전산/Clang(25)
-
포인터와 배열 접근
#include int main(void) { int a[4] = {1, 2, 3, 4}; // 정수형 배열 a int *ptr = a; // 포인터 변수 ptr은 배열 a의 시작 주소를 가리킴 char str[] = "hello"; // 문자열 str 정의 printf("a 배열 첫 번째 요소: %d\n", a[0]); // 배열의 첫 번째 요소 출력 printf("a의 시작 주소의 값: %d\n", *ptr); // 포인터가 가리키는 값 출력 printf("a의 (시작 주소 + 1)의 값: %d\n", *(ptr + 1)); // 포인터 이동 후 값 출력 printf("str의 크기: %d\n",..
2024.11.28 -
문자열 포인터
#include int main() { char *p = "KOREA"; // 문자열 "KOREA"의 시작 주소를 포인터 p에 저장 printf("1. %s\n", p); // 문자열 전체 출력 printf("2. %s\n", p + 1); // 두 번째 문자부터 시작하는 문자열 출력 printf("3. %c\n", *p); // 첫 번째 문자 출력 printf("4. %c\n", *(p + 3)); // 네 번째 문자 출력 printf("5. %c\n", *p + 4); // 첫 번째 문자의 ASCII 값에 4를 더한 문자 출력 return 0;}1. KOREA2. OREA3. K4. E5. O
2024.11.28 -
완전수
#include int complete(int n) { int sum = 0; for (int j = 1; j 코드 해석 (순서대로)1. complete(int n) 함수입력된 정수 n이 완전수(perfect number)인지 확인하는 함수.완전수란 자기 자신을 제외한 약수의 합이 자기 자신과 같은 수를 의미함.로직:sum 변수를 0으로 초기화.1부터 n / 2까지 반복하며, n의 약수(j)를 찾음.약수를 찾으면 그 값을 sum에 누적.sum과 n이 같으면 1(참)을 반환, 그렇지 않으면 0(거짓)을 반환.2. main() 함수1부터 100까지 숫자 중에서 완전수를 찾아 합산.로직:변수 s를 0으로 초기화.i를 1부터 100까지 증가시키며 반복:complete(i)를 호출해 i가 완전수인지 확..
2024.11.28 -
실제 코드 내에서 malloc을 호출하기 때문에 메모리를 힙에 저장한다
- 힙 메모리: 힙은 동적 메모리 할당을 위해 사용되는 컴퓨터의 메모리 영역이다. 프로그램이 동적으로 메모리를 할당해야 할 때, 보통 힙에서 공간을 요청한다. - malloc 함수: C와 C++에서 malloc(memory allocation)은 힙에서 지정된 양의 메모리를 할당하는 데 사용되는 표준 라이브러리 함수이다. 할당된 메모리는 명시적으로 free 함수를 호출할 때까지 사용 가능하다. include include int main() { int arr; int n = 5; // Allocating memory for an array of 5 integers on the heap arr = (int )malloc(n sizeof(int)); if (arr == NULL)..
2024.08.10 -
변수의 범위(scope)
#include int main(){ for (int i = 0; i 오류 원인 for 루프에서 선언된 int i 변수는 해당 for 루프 내부에서만 유효한 지역 변수이다. 즉, for 루프 블록이 끝나면 i 변수는 범위를 벗어나게 되어 더 이상 유효하지 않는다. 따라서, for 루프가 끝난 후 printf("\n%d", i);를 실행할 때, 컴파일러는 i 변수를 찾을 수 없으므로 오류가 발생한다.
2024.07.26 -
포인터 배열 , 배열 포인터
#include int main() { int a[3][3] = {10, 20, 30, 40, 50, 60, 70, 80, 90}; // 포인터를 배열의 첫 번째 요소로 설정 int (p)[3] = a; // (p[2] + 1) 은 a[2][1]의 값 // (p[0] + 3) 은 a[0][3]의 값을 (경계 밖) printf("%d\n", (p[2] + 1) - (p[0] + 3)); return 0;} - a는 3x3 크기의 2차원 배열이다. 배열의 요소는 행 우선 순서로 초기화된다. - p는 int[3] 타입의 포인터이다. 즉, p는 3개의 정수로 구성된 배열을 가리킨다. p는 a의 시작 주소를 가리킨다. 포인터와 배열 포인터 차이 - 배열 포..
2024.07.24