All Pages
7. 포인터 - 문자열
7. 포인터 - 문자열
2025.06.19C 언어에서 문자열이란?더보기끝에 '\0' 문자를 포함해 '문자'들이 메모리상에 연속적으로 저장된 상태 첫 글자의 시작 주소로 연속적으로 저장된 모든 문자에 접근할 수 있다. 문자열은 보통 주소로 관리되기 때문에 포인터와 같이 사용된다. 문자열은 상수 영역과 변수 영역으로 사용 가능- 상수 영역이란 변경이 불가능한 메모리- 변수 영역이란 변경이 가능한 메모리 상수char *cp = "ABCD"; 변수char cArr1[10] = "ABCD";char cArr2[10] ={'A','B','C','D','\0'}; [1, '1', "1", "123", '\0', '0', ' ', "", NULL] 문자의미1정수를 의미하며 정수 1(10진수)이다. 일 숫자라 부른다.'1'한 문자를 의미하며 ASC 코드 정수..
6. 포인터 - 다차원 배열
6. 포인터 - 다차원 배열
2025.06.191. 포인터더보기#include void main(){ int iNum = 97; printf(" iNum 변수의 정수값: %d\n", iNum); printf(" iNum 변수의 주소값: %p\n", &iNum); int *p_iNum = &iNum; printf(" p_iNum 포인터 변수값: %p\n", p_iNum); printf("*p_iNum 포인터 역참조: %d\n",*p_iNum);}/* 실행결과 iNum 변수의 정수값: 97 iNum 변수의 주소값: 0x7fffffffdd9c p_iNum 포인터 변수값: 0x7fffffffdd9c*p_iNum 포인터 역참조: 97 */ 2. 다차원 포인터더보기#include void main(){ ..
5. 포인터 - 배열
5. 포인터 - 배열
2025.06.191. 필수 기반 지식더보기필수 기반 지식 2진수, bit, Byte, 16진수프로그래밍) 빌드, 컴파일, 링킹(함수) 컴퓨터) 실행 개념과 메모리, CPU 동작구조프로그래밍 언어, 어셈블리, 기계어C 언어의 자료형과 함수스텍 메모리 동작 구조 배열과 포인터는 연산자 & * [ ] 만 이해하면 된다.그리고, 배열과 포인터는 다르다.하지만, 학습 초기에는 "같다" 고 가정하고 접근하여 익숙해지는게 먼저다. 연산자 우선순위우선순위연산자 유형연산자결합방향높다1괄호, 배열, 구조체( ) [ ] . → 좌 → 우 2단항연산- ! ~ ++ -- (type) & * sizeof좌 ← 우3산술 연산승제* / %좌 → 우4가감+ -5비트 ..
4. 포인터 - 변수와 함수
4. 포인터 - 변수와 함수
2025.06.191. 변수 구분더보기변수가 선언되는 위치에 따라 아래처러 구분된다.전역 변수(블록 외부에 선언)지역 변수(블록 내부에 선언) 변수가 만들어지는 메모리 영역의 위치와 용도에 따라 구분된다.자동 변수(auto)정적 변수(static)외부 변수(extern)레지스터 변수(register)동적 변수 2. 자동변수와 메모리더보기자동 변수는블록이 시작될 때 { 생성(메모리에 만들어지고)되고블록이 끝날 때 } 소멸(메모리에서 삭제)한다. 정적 변수는프로그램이 시작될 때 생성되고프로그램이 종료될 때 소멸한다. 자동 변수는 변수 자료형 앞에 'auto' 키워드를 붙여 사용하고 정적 변수는 변수 자료형 앞에 'static' 키워드를 붙여 사용한다.('auto' 키워드는 생략하는 것이 가능하므로 자료형 앞에 어떤 키워드도..
3. 포인터 - "C 프로그램" 실행과 역참조
3. 포인터 - "C 프로그램" 실행과 역참조
2025.06.19* 일반적으로 메모리 모델을 다이어그램으로 그릴 때, 낮은 주소를 아래에, 높은 주소를 위에 둔다.한국은 반대로 낮은 주소를 위에 두고, 스텍을 아래에서 위로 쌓는 그림을 사용하기 때문에, 자료 조사할 때 혼동할 수 있다. 우선 스텍은 차례대로 쌓는 이미지만 명확히 기억하고 접근 한다. 1. C언어의 메모리 모델(Memory Layout of C Programs) 더보기* 빌드와 실행을 이해했다고 가정한다. 1.1 메모리 동작 1.2 컴퓨터가 프로그램을 실행하는 관점에서, 개발자 소스코드의 변수 이름이 필요할까? 빌드컴퓨터는 프로그래밍 언어(소스 코드)가 필요 없다.C언어는 사람(개발자)가 필요한 언어다. 실행컴퓨터는, 0과 1 그리고 저장된 공간을 식별할 고유 메모리 주소가 필요하다.포인..
2. 포인터 - "메모리 주소 값" 저장과 역참조
2. 포인터 - "메모리 주소 값" 저장과 역참조
2025.06.191. 변수와 메모리더보기1.1 빌드와 실행- 빌드 - 실행 - 포인터의 사용 목적 프로그램이 실행될 때, 메모리(RAM, 주기억장치)에 로드된 값(Data, 11001010)을 메모리의 주소값으로 참조하고자 한다. 이는 변수와 값을 사용하는 방법과 동일한 목적이지만, 방법이 다를 뿐이다. 그렇기 때문에 포인터의 학습의 시작은,1) "변수와 값"을 사용하는 방법, 그리고 2)"포인터와 값"을 사용하는 방법을 명확하게 구분하는 것으로 시작해야 한다. 1.2 용어 명확히하기 - 소스코드를 볼 때, 메모리 구조가 머리속에 그려졌으면 좋겠다. 프로그램은 1)데이터(Data)와 2)로직(Logic)으로 이루어진다. 변수는 데이터(Data) 를 저장하기 위한 메모리 공간의 이름으로, 이진수(11001010)를..
1. 필수 사전 학습
1. 필수 사전 학습
2025.06.191. 시작하기더보기1.1 학습 관점 1. 프로그래밍 학습 관점 1. 프로그래밍 학습 관점1. 목적 → "프로그래밍 언어"와 "개발 기술"은 프로그램을 만들기 위한 것입니다.더보기- 프로그래밍은 학생, 초보자, 신입를 고려한 교육과 학문의 영역이 아닙니다. "프로그래밍"은 '프로그basiclike.tistory.com 1.2 C 언어를 접근하는 관점 "C 언어" 라는 프로그래밍 언어는 1970년대, "컴퓨터를 사용한다는 것"이 "하드웨어와 소프트웨어를 만든다는 것"과 동일한 의미일 때 등장한 "오래된 프로그래밍 언어" 입니다. 심지어 하드웨어와 소프트웨어의 개념조차 명확히 구분되지 않던 시기에 "컴퓨터 동작 구조 이해 정도는 기본 소양으로 갖춘 엔지니어가, 컴퓨터라는 전자 계산 하드웨어에 효율..
우분투 초기세팅5 - 폰트
우분투 초기세팅5 - 폰트
2025.05.28mkdir ~/.local/share/fonts;cd ~/.local/share/fonts;wget https://github.com/naver/d2codingfont/releases/download/VER1.3.2/D2Coding-Ver1.3.2-20180524.zip;unzip D2Coding-Ver1.3.2-20180524.zip; 설치 중, 대문자 'A' 입력 터미널 폰트 설정더보기터미널의 메뉴에서 "편집 > 프로파일 기본 설정"을 선택합니다.사용자 지정 글꼴을 체크하고 현재 설정된 폰트 이름인 "Monospace Regular 12"를 클릭합니다.d2coding 폰트 선택
<Ubuntu> 파이참 설치
<Ubuntu> 파이참 설치
2025.05.281. 🐍 파이썬 설치더보기1. 설치된 파이썬 확인* 우분투 20.04 이상은, 파이썬이 기본적으로 치되어 있습니다.python3 --version # python이 설치되어있는지 확인 + version 확인which python3 # python이 어디에 설치되어 있는지 확인 2. 최신 버전 설치 (예: Python 3.11, 3.12)sudo apt update #패키지 업데이트sudo apt install -y python3 최신 기본 버전 python3.x 를 설치합니다. 3. 특정 구버전 설치* 우분투 기본 저장소에 원하는 버전이 없을 경우, PPA 저장소를 추가해 설치할 수 있습니다.# PPA 저장소 추가sudo add-apt-repository ppa:de..
우분투 초기세팅4 - 수동 설치
우분투 초기세팅4 - 수동 설치
2025.05.281. 디렉토리더보기1. 윈도우 파일 탐색기리눅스의 디렉터리 구조를 이해하기 전에, Windows와 비교하면 쉽게 파악할 수 있습니다. 1. Windows는 C:\ 드라이브를 최상위로 하여2. 그 아래에 Windows, Program Files, Adobe 등의 폴더가 계층적으로 연결되어 있습니다.3. 예를 들어, C:WProgram Files₩AdobeWAcrobat DC 와 같은 경로로 파일을 표현합니다.4. 폴더 구분자는 백슬래시 \ 입니다.*이와 비교해 리눅스는 /가 최상위 디렉터리(루트)이며, 폴더 구분자는 슬래시 /를 사용합니다. 2. 리눅스 디렉토리 2.1 tree 설치: # 터미널 실행, tree 설치sudo apt install tree 2.2 디렉터리 구조 확인: # 리눅스에서 디렉터..
우분투 초기세팅3 - 기타
우분투 초기세팅3 - 기타
2025.05.281. 개인 설정더보기May.28.2025Ubuntu 24.04VM for KCCI AIot STU. 음소거오른쪽 상단 ⬇️ 버튼 클릭 ➫ 스피커 버튼 ➫ 🔇 음소거 자동 스크린 꺼짐 수정오른쪽 상단 ⬇️ ➫ 설정(Settings) ➫ 사생활보호(Privacy) ➫ 화면잠금(Screen Lock) 화면꺼짐 15분, 스크린 락 30분 독(대시보드) 정리우측 독 아이콘 오른쪽 클릭 ➫ 파일 탐색기(노틸러스), firefox 브라우저만 남기고 고정 제거, 터미널 추가 독 자동 숨기기오른쪽 상단 ⬇️ ➫ 설정(Settings) ➫ 우분투 데스크톱 ➫ 독 자동 숨기기커서 크기 변경오른쪽 상단 ⬇️ ➫ 설정(Settings) ➫ 접근성 ➫ 보기 ➫ 커서 크기 변경..
우분투 초기세팅2 - 한글(hangul) 입력
우분투 초기세팅2 - 한글(hangul) 입력
2025.05.27[방법 1] ibus-hangul 세팅 (요약)더보기*우분투 설치 시, 한글 입력 할 수 없다. (Settings ➫ Keyboard 에서 korean 설정만으로는 한글 입력 불가) 1. ibus-hangul 패키지 설치sudo apt upgrade ibus-hangul -y 2. 재로그인ibus-hangul 패키지 설치가 완료되면, 로그아웃 후 재로그인(또는 재부팅) 3. korean(Hangul) 입력 설정Settings ➫ Keyboard ➫ Input Method ➫ Add Input Source ➫ ⠸ ➫ korean 검색 ➫ korean 클릭 ➫ korean(Hangul) 선택 ➫ Add ➫ 기존 Input Source 제거 ibus-hangul 세팅 (상세)..