seowool719의 등록된 링크

키자드에 등록된 총 52개의 포스트를 확인하실 수 있습니다.

Naver Blog

문법 및 문제 카테고리

C 언어 문법 목차 관련 문법 세부 목차 관련 문제 관련 STL 0. 프로그래밍 프로그램이란? 코딩이란? 1. 변수 변수의 정의 변수의 종류 변수의 선언 및 초기화 변수의 이름 규칙 변수의 생존 조건 2. 자료형 정수형 실수형 문자형 실수형 void 자료형 bool 자료형 signed unsigned 3. 문자형 문자 문자열 4. 상수 정수형 실수형 문자와 문자열 bool 5. 연산자 대입 연산자 Lv0. 두 수의 합 구하기 Lv0. 두 수의 차 구하기 산술 연산자 비교 연산자 증감 연산자 논리 연산자 비트 연산자 형 변환 연산자 삼항 연산자 콤마 연산자 sizeof 연산자 주소 연산자 연산자 우선순위와 결합 규칙 6. 입출력 printf, scanf 탈출 문자열 getchar,putchar gets,puts,fgets,fputs 다양한 형식 지정자 7. if 와 switch 기본 if문 if 와 else if 와 else if if 복합, 중첩 기본 swtich 문 swtich 복

Naver Blog

STL

C 관련 관련 문법 STL 이름 관련 문제 1. 입출력 <stdio.h> C++ 관련 관련 문법 STL 이름 관련 문제 입출력 <iostream>

Naver Blog

Lv0 - 두 수의 차 구하기 (Day1) / 002

목차 문제분석 기본 해결 방법 코드 구조 상세 분석 완전한 프로그램 작성 다양한 구현 방식 예외 처리 1. 문제 분석 주어진 문제를 정확히 이해해보겠습니다. 정수 num1과 num2가 매개변수로 주어집니다. 이 두 수의 차를 계산하여 반환하는 solution 함수를 작성해야 합니다. 반환 타입은 정수(int)입니다. 2. 기본 해결 방법 가장 직관적인 C++ 해결 방법은 다음과 같습니다. int solution(int num1, int num2) { return num1 - num2; } 3. 코드 구조 상세 분석 1. 함수 선언부 int solution(int num1, int num2) 반환 타입: int - 함수가 정수 값을 반환함을 의미 함수명: solution - 함수를 호출할 때 사용하는 이름 매개변수: int num1, int num2 - 두 개의 정수형 매개변수 2. 함수 구현부 { return num1 - num2; } 중괄호: 함수의 시작과 끝을 나타냄 return

Naver Blog

1번 과제 (간단한 프로그래밍 구현)

필수 기능 가이드 해당 기능은 반드시 구현을 해주셔야해요! 원격 강의를 들었다면 어렵지 않게 할 수 있습니다! 사용자로부터 5개의 숫자를 입력 받습니다. 입력 받은 숫자를 배열에 저장합니다. 배열에 저장된 숫자들의 합계와 평균을 계산합니다. 계산된 합계와 평균을 출력합니다. 배열을 인자로 넘겨 받아서 배열 원소들의 합계를 반환하는 함수를 구현해봅니다. 배열을 인자로 넘겨 받아서 배열 원소들의 평균을 반환하는 함수를 구현해봅니다. 위에서 만든 합계 함수와 평균 함수를 호출하여 합계와 평균을 출력합니다. 도전 기능 가이드 사용자가 입력한 숫자 배열을 정렬하는 프로그램을 구현해보세요. 정렬은 오름차순 정렬과 내림차순 정렬이 가능해야 합니다. 숫자 1을 입력 받으면 오름차순 정렬, 숫자 2를 입력 받으면 내림차순 정렬을 하도록 구현해주세요. algorithm 헤더의 sort 함수를 사용하지 않고 직접 구현해보세요. 오름차순 정렬과 내림차순 정렬 동작을 각각 함수로 구현해보세요. [구현설명]

Naver Blog

나의 일기 5/29

오전 : 코딩 약수의 합 [문제 파악] 정수의 약수를 구하는 방법은 0으로 떨어지지 않는 수를 제외한 모든 수를 구하는 것이다. 즉,... blog.naver.com 오후 : 내일배움캠프 C++ 1주차 자료에 있는 숙제하기 와 미친 클래스 분리하는 거 머리 엄청 아프네 ㅋㅋㅋ 스파게티 코드가 멀지 않은 것 같다.. blog.naver.com 1번 과제 (간단한 프로그래밍 구현) 필수 기능 가이드 해당 기능은 반드시 구현을 해주셔야해요! 원격 강의를 들었다면 어렵지 않게 할 수 있습... blog.naver.com

Naver Blog

1번 과제 체종 개선

메인 파일 헤더 파일 소스 파일 이제 그만

Naver Blog

나의 일기 6/2

Previous image Next image 드디어 나만의 개발 가이드 문서를 만들 수 있는 시기가 온 듯하다. 각종 문법 규칙, 기초적인 코딩 작성 시 주의 사항 관련 오류 등등 지금껏 생긴 문제들을 한데 모아서 놔뒀다. 굳이 프린트한 이유는 정리할 겸 + 편의를 위해서다. 매번 GPT나 구글 검색을 할 수는 없다. 예를 들어 아스키 코드의 'A'가 숫자로 몇 인지를 까먹었는데 그걸 구글 검색할 시간에 내가 정리한 노트를 펼쳐본다면 어느 게 더 빠를까. 그런 의미해서 작성한 문서다. 오류들 역시 내가 자주 실수하는 것, 유의해야 하는 것들이 적혀 있기에. 무슨 문제가 생겼을 때 해당 오류의 구문을 구글에 검색해보는 것도 좋지만 내 문서를 펼쳐서 그 오류가 있으면 바로 보면 된다. 물론 고수들 입장에서 내 문서는 아직 갈 길이 멀지만... 이렇게 한 걸음씩 나아가면 언젠가 고수가 되겠지 뭐. 에라 몰라.

Naver Blog

약수 구하기 알고리즘

#include <iostream> #include <vector> #include <algorithm> int main(void) { std::vector<int> v; int N; std::cout << "입력하세요 : "; std::cin >> N; for (int i = 1; i <= sqrt(N); ++i) { if (0 == N % i) { v.push_back(i); if (i != N / i) v.push_back(N / i); } } std::sort(v.begin(), v.end()); for (auto i = v.begin(); i != v.end(); ++i) { std::cout << *i << '\n'; } return 0; } [작동 원리] N이란 정수가 들어왔을 때 for (int i = 1; i <= sqrt(N); ++i) for구문을 통해서 제곱수에 해당하는 값이 i보다 크면 반복 작업을 실시한다. 100일 경우, 10까지만 반복하는 것이다. 왜냐하

Naver Blog

나머지가 1이 되는 수 찾기

나머지가 1을 남기는 수를 2부터 시작해서 찾은 다음 찾았으면 값을 리턴 [개선]

Naver Blog

자원 관리와 스마트 포인터

/* 자원 관리 메모리 영역 스택 : 일반 변수들은 대부분 여기 변수의 생존 주기가 끝나면 선언 시 할당되었던 메모리가 자동으로 회수된다. { int x; { 이런 블록 안에서만 살아있을 수 있으며, 이 코드 흐름상 블록이 끝나게 되면 사라짐 //반복 내에 선언된 변수 생존 주기 for(int i=0; i < 3; ++i) { int a = i*10; } 이런 for 구문에서 초기 조건은 for 구문이 진행되는 동안은 사라지지 않음. 하지만 int a = i*10; 는 for문이 작동하는 동안 사라졌다가 생성되었다가를 반복한다. // 중첩 내에서 선언된 변수 생존 주기 function1() { int a = 1; function2() { int b = 1; } } 이런 중첩 상황에서는 function2 가 종료될 때 b가, fuction1 이 종료될 때 a가 종료된다. 특징 1. 스택 메모리는 크기가 제한적 (힙이 더 크다) 2. 변수의 생존 영역을 벗어나면 자동으로 해제되므로 메모

Naver Blog

나의 일기 6/4

약수 구하기 알고리즘 #include <iostream> #include <vector> #include <algorithm> int main(void) { std::v... blog.naver.com 나머지가 1이 되는 수 찾기 나머지가 1을 남기는 수를 2부터 시작해서 찾은 다음 찾았으면 값을 리턴 blog.naver.com 취업 이력서 특강 있었음. C++ 문법 2주차 강의. 자원 관리와 스마트 포인터 /* 자원 관리 메모리 영역 스택 : 일반 변수들은 대부분 여기 변수의 생존 주기가 끝나면 선언 시 할당되었... blog.naver.com

Naver Blog

함수 호출 오버 헤드란?

단계별 상세 과정 1단계: 함수 호출 준비 (Parameter Setup) 무슨 일이 일어나나? CPU가 매개변수 5와 3을 준비합니다 호출 규약(calling convention)에 따라 레지스터나 스택에 저장 x86에서는 보통 스택에 오른쪽부터 push: 3 → 5 2단계: 리턴 주소 저장 (Return Address Push) 무슨 일이 일어나나? 함수가 끝나고 돌아올 위치를 기억해야 합니다 현재 명령어 포인터(EIP) 다음 주소를 스택에 저장 int result = add(5, 3); 다음 줄의 주소가 저장됨 3단계: 함수로 점프 (CALL Instruction) 무슨 일이 일어나나? CALL 명령어가 실행됩니다 CPU의 명령어 포인터(EIP)가 add 함수의 시작 주소로 변경 이때부터 add 함수의 코드가 실행됨 5단계: 지역 변수 공간 할당 (Local Variable Allocation) 무슨 일이 일어나나? 함수 내 지역 변수들을 위한 스택 공간 확보 스택 포

Naver Blog

Lv0 - 두 수의 합 구하기 (Day1) / 001

목차 문제분석 기본 해결 방법 코드 구조 상세 분석 완전한 프로그램 작성 다양한 구현 방식 예외 처리 1. 문제 분석 주어진 문제를 정확히 이해해보겠습니다. 정수 num1과 num2가 매개변수로 주어집니다. 이 두 수의 합을 계산하여 반환하는 solution 함수를 작성해야 합니다. 반환 타입은 정수(int)입니다. 2. 기본 해결 방법 가장 직관적인 C++ 해결 방법은 다음과 같습니다. int solution(int num1, int num2) { return num1 + num2; } 3. 코드 구조 상세 분석 1. 함수 선언부 int solution(int num1, int num2) 반환 타입: int - 함수가 정수 값을 반환함을 의미 함수명: solution - 함수를 호출할 때 사용하는 이름 매개변수: int num1, int num2 - 두 개의 정수형 매개변수 2. 함수 구현부 { return num1 + num2; } 중괄호: 함수의 시작과 끝을 나타냄 return

Naver Blog

0과 1에서 캐릭터 이동, 데이터 의문점 해결까지

게임에서 캐릭터가 이동하기 위한 가장 기초적인 필요 단계는 '컴퓨터' 그 자체라고 할 수 있다. 게임은 결국 실행 파일이며. 그 실행 파일이 굴러가기 위해선 엔진이 필요하고. 그 엔진이 굴러가기 위해서는 OS가 필요하고. OS는 컴퓨터 본체 없이는 존재할 수 없다. 그리고 컴퓨터 본체라고 하면. 메인보드, cpu, gpu, ram, ssd 등등으로 이루어져 있다. 그런데 이 중에서 cpu라는 녀석이 주로 연산을 담당한다. 바꿔 말하면 cpu는 연산이 특화이지, 저장이 특화가 아니다. 따라서 cpu의 연산을 처리해줄 저장 데이터가 필요한데 이게 바로 ram이다. 그러나 ram의 문제점은 휘발성 메모리라는 것이다. 그렇기에 ram의 휘발성을 대체하기 위한 저장장치가 바로 hd, ssd 같은 저장장치들이다. 하지만 여기서 더 세부적으로 가자면 cpu는 빠른 계산을 위해 자체적으로 가진 레지스터 메모리가 존재한다. 또 램에서 자주 쓰이는 데이터를 미리 기억해두기 위한 캐시 메모리도 있다.

Naver Blog

짝수와 홀

#include <string> #include <vector> using namespace std; string solution(int num) { string answer = ""; (0 == (num %2))? answer = "Even": answer = "Odd"; return answer; } [추가] 비트 연산을 써서 마지막 자리에 0인지 1인지 (&) 곱으로 계산해서 0이면 거짓이고, 1이면 참으로 해도 되었네... 이걸 왜 그땐 생각 못했을까 ㅠㅠ

Naver Blog

배열의 평균 구하기

참고 sizeof() >> 로 배열의 길이를 구할 경우 생기는 문제점 이 함수는 배열의 길이를 구하는 게 아니라 배열의 크기를 구하는 함수다. 즉, 1byte 를 기준으로 얼마나 많은 byte를 할당하고 있는가? 에 대한 함수다. int arr[4]로 함수의 크기를 구하면 '4byte 정수가 4개 = 16byte' 가 나온다. 그리고 여기서 다시 한 번 sizeof(int) = int 타입의 크기를 구하기' 해서 sizeof(arr) / sizeof(int) 로 16/4 = '4' 라는 값을 도출 할 수 있다. 이는 배열이 선언한 4개의 int 타입 변수와 똑같은 값을 도출한다. 하지만 정상적으로 작동하지 않을 때가 있다. 포인터를 쓸 경우에 함수 자체의 크기가 아닌 포인터의 크기를 재는 불상사가 일어난다.

Naver Blog

나의 일기 5/27

오전 : 코딩 카타 배열의 평균 구하기 참고 sizeof() >> 로 배열의 길이를 구할 경우 생기는 문제점 이 함수는 배열의 길이를 구하는 게 아... blog.naver.com 오후 : 게임개발자를 위한 C++문법 1주차 1강, 2강 완료 내일 목표 오전 : 1. 코딩 카타 1문제 2. 게임개발자를 위한 c++문법 1주차 3강 오후: 3. 게임개발자를 위한 c++문법 1주차 4강 4. 1~3주차 정리 6. 1주차 숙제

Naver Blog

각 자릿수 더하기

문자열을 쓰지 않고 각 자릿수를 % (모듈러스 연산자)를 통해서 구하는 법 작동 방식 10자릿수라는 10진수의 법칙을 이용한다. 123 나누기 10 하면 3이 남고 12 나누기 10하면 2가 남고 마지막 10일 경우 >> 예외처리 혹은 10보다 작을 경우 >> 예외처리 문자열을 이용하여 각 자릿수의 합을 구하는 법. 먼저 #include string을 추가하여 문자열 추가 가능하게 한다. 이후 to_string() 함수로 int 타입을 문자열로 변환시킨다. std::to_string 헤더파일 <string> std::to_string 함수 원형 string to_string (int num); string to_string (long num); string to_string (long long num); string to_string (unsigned num); string to_string (unsigned long num); string to_string (unsigned

Naver Blog

monokai 테마 개꿀 코드 개잘보임

확장 관리에 들어가서 monoak 다운 및 설치 옵션 들어가기 환경 >> 일반 >> 색 테마 바꾸면 됨

Naver Blog

문법 정리(1) - 메인 함수(完), 변수(미完)

메인 목표 : 내일배움 캠프에서 배운 C++ 1주차 내용과 내가 따로 배운 내용을 정리하여 한 눈에 볼 수 있는 C++ 문법 만들기 서브 목표 : 만들면서 생긴 오류 코드 정리해서 오류 코드 노트 만들기 제작 이유 : 개발 도중 까먹으면 바로 찾아보기 위함 이렇게 작성하고 있다. 현재 완료한 것 - 메인 함수 Previous image Next image 하고 있는 것 - 변수 Previous image Next image 작성 도중 문제점 변수의 최대치 출력 관련 오류 (컴파일 단계 경고) >> 컴파일러 경고 : C4146) 으로 인해 최대 음수 값 직접 지정 불가 long long LLOA = -9223372036854775808; 해당 단계에서 컴파일러가 부정으로 연산하는 도중에 오류 발생 컴파일러 경고(수준 2) C4146 자세한 정보: 컴파일러 경고(수준 2) C4146 learn.microsoft.com 원인 규명 컴파일러가 unsigned 와 signed 의 구분을

Naver Blog

나의 일기 5/28

오전 : 특강 9~10시 내일배움캠프 특강 과제 C++ 문자열 회전 언리얼리얼 blog.naver.com 코딩 테스트 각 자릿수 더하기 문자열을 쓰지 않고 각 자릿수를 % (모듈러스 연산자)를 통해서 구하는 법 작동 방식 10자릿수라는 10진수... blog.naver.com c++ 게임개발자를 위한 C++문법 1주차 3강 완료 오후 : c++ 게임개발자를 위한 C++문법 1주차 4강 완료 1주차 정리 중.... 문법 정리(1) - 메인 함수(完), 변수(미完) 메인 목표 : 내일배움 캠프에서 배운 C++ 1주차 내용과 내가 따로 배운 내용을 정리하여 한 눈에 볼 수 있... blog.naver.com monokai 테마 개꿀 코드 개잘보임 언리얼리얼 blog.naver.com 내일 목표 오전 : 1. 코딩 카타 1문제 2. 1주차 절반 정리하기 3. C언어 수업 들을까 말까 정하기 오후: 3. 1주차 남은 거 다 정리하기 4. 1주차 숙제 완료하기 5. 시간 되면 C언어 독학 시작

Naver Blog

약수의 합

[문제 파악] 정수의 약수를 구하는 방법은 0으로 떨어지지 않는 수를 제외한 모든 수를 구하는 것이다. 즉, 간단히 계산하면 10이란 숫자가 있을 때 10/1 = 10 10/2 = 5 10/3 = 3.333 10/4 = 2.5 10/5 = 2 10/6 = 1.666 10/7 = 1.42.... 10/8 = 1.25 10/9 = 1.11111... 10/10 = 1 이렇게 된다. 여기서 특이한 점을 발견할 수 있는데 1/10 = 10 2/10 = 5 5/10 = 2 10/10 = 1 특이한 점 : 바로 나누는 숫자와 나머지가 남지 않는 숫자와 갯수, 합이 똑같다는 것이다. 즉, 만약에 1억이라는 숫자가 있다면 for문을 1부터 1억까지 돌려서 찾는 방법을 써도 되지만 비효율적이다. 그렇다면 그 비효율을 없앨 첫 번째 방법이 바로 저 특이한 점을 이용하는 것이다. 그렇다면 그걸 어떻게 할 수 있을까? 나는 먼저 100을 1부터 100까지 나눠봤다. 여기서 모듈러스 연산자를 통해 0으로

Naver Blog

내일배움캠프 C++ 1주차 자료에 있는 숙제하기

다이아몬드 만들기 2강 숙제 1,2 3강 숙제 3강 숙제 4강 숙제 4강 숙제 와 미친 클래스 분리하는 거 머리 엄청 아프네 ㅋㅋㅋ 스파게티 코드가 멀지 않은 것 같다..

Naver Blog

라이트와 루멘

1. 포인트 라이트 2. 스포트 라이트 3. 렉트 라이트 4. 디렉셔녈 라이트 5. 스카이 라이트 포인트 라이트 : 전구처럼 모든 방향으로 빛을 내뿜는 라이트 강도 : 빛을 얼마냐 내뿜느냐 강도 유닛 : 측정 단위 라이트 컬러 : 색깔 어테뉴에시션 반경 : 라이트의 영향력 반경 = 빛의 범위 소스 반경 : 광원 모양의 반경 = 광원이 시작되는 부분 소프트 소스 반경 : 광원 모양의 부드러운 반경 소스 길이 : 위아래로 빛을 더 주고 싶을 때 씀 온도 사용 : 숫자가 높으면 차가운 색, 낮으면 따뜻한 색 (단위는 켈빈) 월드 영향 : 월드에 영향을 줄 거냐 그림자 드리우기 : 그림자 생성 여부 (그림자가 너무 어두울 때 해제하고 다른 라이트를 배치해서 강도를 낮춰서 쓰는 방식으로 ON OFF) 그림자 필터 선명화 : 간혹 그림자가 선명하지 않을 때 스포트 라이트 : 원뿔처럼 빛을 내뿜는 라이트 내부 원뿔 각도 : 내부반경의 경계에서 외부 경계까지 감쇠하며 연해지는 부분을 조절 외부 원

Naver Blog

짝수의 합 구하기

이렇게 코드를 짠 의도 10이하의 짝수를 구하고 싶은 다른 방법을 생각하자면 for 구문 써서 2부터 시작해서 10까지 더해가면 그거 총합을 answer 에 반환할 수도 있다. 하지만 for 을 쓰면 그만큼 연산을 계속해야 한다. 최대한 연산을 줄이도록 설계하려고 하다보니 이렇게 되었다.

Naver Blog

T4FrameWork

T4Framework Story Tutorials with T4Framework virtualflowinc.com T4Framework AI The Future of MCP and Unreal Engine 5 t4framework.com

Naver Blog

문자열과 포인터

문자열의 반환 타입은 애초에 const 포인터 타입 그래서 직접 건드리면 어떻게 되냐? 터짐 런타임 에러. [char 는 무조건 다 1바이트 표현이 아님] 멀티 바이트 표현방식 1바이트로 표현할 수 있는 건 최대한 1바이트로 하고 안 되는 건 2바이트. >> 표준으로 쓰는 방식 아님 [문자열의 길이를 알려주는 함수]

Naver Blog

c++ 표준 함수 참고 문서

다양한 표준 함수 C에서는 다양한 표준 함수를 지원하고 있다. C언어 표준 함수에 대한 정보를 얻을 수 있는 사이트 header <cstdio> (stdio.h) C library to perform Input/Output operations Input and Output operations can also be performed in C++ using the C St andar d I nput and O utput Library ( cstdio , known as stdio.h in the C language). This library uses what are called streams to operate with physical devices... cplusplus.com

Naver Blog

문자열 길이 알려주는 함수 만들기

#include <stdio.h> #include <stdlib.h> #include <wchar.h> int SizeLength(const wchar_t *Name) { int CountStringArrySize = 0; while ('\0' != Name[CountStringArrySize]) { ++CountStringArrySize; } return CountStringArrySize; } int main() { wchar_t Name[10] = L"Raimond"; int Size1 = (SizeLength(Name)); // 내가 만든 배열의 함수 길이 확인 함수 int Size2 = wcslen(Name); // 제공해주는 배열의 함수 길이 확인 함수 printf("배열의 길이는 %d\m", Size1); printf("배열의 길이는 %d\n", Size2); return 0; [작동 원리] whcar_t Name[10] = L"Raimond"; 이 명령어는 2바이트로

Naver Blog

나의 일기 5/22

오전 : 특강 9-11 C++ void 포인터 언리얼리얼 blog.naver.com 문자열과 포인터 문자열의 반환 타입은 애초에 const 포인터 타입 그래서 직접 건드리면 어떻게 되냐? 터짐 런타임 에러. [c... blog.naver.com 문자열 길이 알려주는 함수 만들기 #include <stdio.h> #include <stdlib.h> #include <wchar.h> int SizeLength(const w... blog.naver.com 엔진 랜드 스케이프 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/landscape-brushes-in-unreal-engine [브러... blog.naver.com 코딩 테스트 배열의 평균값 언리얼리얼 blog.naver.com 기타 index가 뭔지 설명해보세요 (개발면접시간) 언리얼리얼 blog.naver.com c++ 표준 함수 참고 문서 다양한 표준 함수 C에서는

Naver Blog

랜드 스케이프

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/landscape-brushes-in-unreal-engine [브러쉬 세팅의 텍스처를 활용한 지형 세팅]

Naver Blog

포인터 기초

#include <stdio.h> #include "func.h" #include "common.h" static int G = 0; // func2.cpp 에 위치가 잡혀 있음. int main() { int data1 = Add(10, 10); int data2 = Sub(10, 10); int data3 = Mul(10, 10); //================================================================================================================================================================================ /*포인터: 정확하게 말하면 포인터 변수 기능 : 주소를 가리킴 즉, 주소를 가리키는 변수 int* pInt = nullptr; // nullptr : 아무것도 가리키지 않는다는 의미 (비트상 0이 들어감) */ // 그냥 int 라고

Naver Blog

나의 일기 5/21

오전 : 특강 9~12 [ C++ ] 포인터 기초 #include <stdio.h> #include "func.h" #include "common.h" static int G &#x... blog.naver.com 포인터의 주소 단위 [존나 중요] [포인트의 주소] 1byte 씩 주소가 차이가 난다는 것은. A,B,C,D,F마다 1byte씩 주소가 차이난다는 게 ... blog.naver.com 포인터 배열 첫번째 주소에 주고 싶으면? 그래서 배열의 시작이 0부터인 것. iArr[0] >> 이게 풀어 쓰면 *(iArr... blog.naver.com 포인터 문제 언리얼리얼 blog.naver.com 포인터 변수 해석 #include <stdio.h> ///표준 라이브러리 헤더 #include <stdlib.h> // 표준 유틸리티 함수들을... blog.naver.com const // const (상수) : constant value (한번 할당된 값이 프로그램 실행 중에 변하지

Naver Blog

포인터의 주소

[포인트의 주소] 1byte 씩 주소가 차이가 난다는 것은. A,B,C,D,F마다 1byte씩 주소가 차이난다는 게 아니다. A가 100번지이면 B가 102번지이면 둘이 1바이트 차이난다는 게 아니다. 데이터 공간에 1바이트씩 주소가 전부 있고. 100 1byte 차이 101 1byte 차이 102 1byte 차이 103 1byte 차이 104 이렇게 주소가 있을 때, 4바이트 크기의 int A가 들어오면 100 1byte 차이 - A 101 1byte 차이 - A 102 1byte 차이 - A 103 1byte 차이 - A 014 이렇게 된다. 즉, 포인터를 제대로 쓰기 위해서는 포인터의 주소가 어떻게 작동하는지 확인하고. 그 작동 방식이 내가 보낸 명령어에 따라서 내부 작동이 어떻게 되는가? 를 잘 알아야 한다. int i = 100; // int i 라는 변수를 선언한다. (메모리에 공간을 할당) // int i 라는 변수에 값을 집어넣는다. (할당된 메모리에 100을 집어넣음

Naver Blog

포인터 배열

첫번째 주소에 주고 싶으면? 그래서 배열의 시작이 0부터인 것. iArr[0] >> 이게 풀어 쓰면 *(iArr + 0)

Naver Blog

포인터 변수 해석

#include <stdio.h> ///표준 라이브러리 헤더 #include <stdlib.h> // 표준 유틸리티 함수들을 모아놓은 헤더 // void로 해야함 void test(int* a) // 주소를 달라 { *a = 500; // 주소로 접근 } int main() { int a = 100; test(&a); // 주소를 준다. printf("a 의 출력값 %d", a); // 그래서 scanf_s("%d",&a); 가 &a로 주소를 달라고 하는 거임 // 그래야 입력 받은 값을 주소 찾아서 가서 넣어주는 거임 return 0; } 외부 변수의 주소를 받아서 쓰면 여러 장면에서 다양하게 적용이 가능하겠네.

Naver Blog

const

// const (상수) : constant value (한번 할당된 값이 프로그램 실행 중에 변하지 않는 값) const int cint = 100; // 상수화가 됨. 이런 애들을 r-value 라고 부름 // 바뀔 수 있는 애들(변수들)은 l-value 라고 부름 // const 키워드로 변수를 상수로 만들어버림. // 그런데 cint 안에 데이터 값 100이 변하지 않는 건가 그럼? // 자세히 보자 // 100; 이런 애들이 진짜 상수이고 // int cint 이건 정수형 자료형 cint 라는 공간을 //스택 메모리 안에 만들어서 // 거기 안에 100이란 값을 넣었고. // 이제 바꾸지 않겠다. 라고 한 것뿐임. int* ptr = (int*) &cint; *ptr = 300; printf("cint 출력 : %d \n", cint); 실제 공간에는 300이 들어감 근데 출력은 다르다. 왜 저럴까? 그러면 volatile 을 쓴다면? 대체 왜 이렇게 되는가? 정리 cons

Naver Blog

const 포인터

// const 와 포인터 int b = 0; int* pint = &b; // 1 pint = nullptr; // 2 // 포인터를 이용해서 바꿀 수 있는 거 // 1. b라는 변수의 주소를 알았으니까 b 변수의 값을 바꿀 수 있다. (가리키는 대상의 값을) // 2. 포인터 변수의 주소를 바꿀 수 있음. (가리키는 대상을) // 그래서 const 와 포인터가 묶이면 두 가지 경우가 생김. // 1. 가리키는 곳을 바꿀 것인지 말 것인지 (가리키는 대상을 바꿀 수 있나 없나) // 2. 본인 자체가 const 가 되는 것. (처음 누구를 가리키면 딴 대상으로 안 바뀌는) // 이건 const 가 붙는 위치에 따라 달라짐 const int* pConstIntb = &b; // 앞에 붙을 때. 포인터 변수가 가리키는 곳의 값을 못 바꾸게 // 대신 다른 변수의 주소로 포인터 변수를 바꿀 수 있음 // 즉, 자기가 가리키는 대상의 값을 못 바꾸는 거임. int c = 0; int* c

1