int의 데이터 접근하기 위해서는 int* p; ★★★ 코드 읽는 법. 1. 이름을 기준으로 오른쪽부터 읽는다. 2. 왼쪽을 읽는다. 파악 1. 정체를 파악한다. (구조체, 변수, 포인터, 배열 등) 2. 용도 파악 ( 이 레퍼런스를 어떤 용도로 사용 하는 것 인가?) 포인터를 구분하기 포인터 첫 번째 용도 두 번째 용도 결과 int a 10개짜리 배열 int int aa; int* p pointer int를 저장하는 변수 int aa; int* p[3] [3] 배열 int pointer int* p[3]; int (*p)[3] pointer int [3] int aa[3]; int **pp ponter int * int aa; int *(*p)(int a) pointer 함수 int aa(int a);
pointer : 주소값을 저장하는 변수 (4 byte) , 간접 변수, 포인터는 1 대 1 방식이다. 가르키는 대상의 따라서 포인터 모양이 달라진다. 만약 int형 포인터를 사용할 경우 int type은 4byte이다. 그러나 갑자기 char를 읽으라고 할 경우 char type은 1byte이므로, 잘못했다가는 char data를 4개를 읽을 수 있는 경우가 발생한다. 데이터 크기에 따라 저장하기 때문에 data mix 혹은 data 손실이 발생하게 된다. 그러므로 pointer를 사용 할때는 가르키는 대상의 타입을 명확히 알아야 한다. * => [] 기능 오직 주소값만 저장 할 수 있다. 내가 지정 한 곳이 아닌 엉뚱한 곳으로 지정하게 되면 Non Type error가 발생한다. ★★★ 반드시 초기값..
#define _CRT_SECURE_NO_WARINGS #include #include int total(int a, int b, int c); float avg(int a, int b, int c); int main() { int select = 0; int num1 = 0; int num2 = 0; int mat = 0, kor = 0, eng = 0; //한 반당 3명, 3개의 반이 있고, 한 명당 국, 영, 수, 총점, 평균 int student[3][3][3] = { 0, }; char name[3][3][10];//이름 저장하기 //무한 루프 do { printf("1. 입력 / 2. 전체 출력 / 0. 종료 \n"); rewind(stdin); scanf("%d", &select); rewi..
주소 표현식 * 을 통해서 표현한다. 에스터리스크(*) 를 구분할 때는 값인지, 주소 인지부터 파악하는게 우선 순위다. 1. 주소와 값을 구분하는 방법 1-1. 선언할 것을 기준으로 [], * 갯수가 부족하면 => address 1-2. 선언한 것을 기준으로 [], * 갯수가 동일하면 => value 2. 주소가 어디를 표기하는지 구분 하는 방법 2-1. [] , * 1개 부족 : 1차원 주소 2-2. [] , * 2개 부족 : 2차원 주소 ★★★ 3. 주소 연산 (위, 1번과 2번을 기준으로 3번을 구분 한다.) 부족한 갯수 1차원 주소 + 1 => 한 요소의 사이즈. 2차원 주소 + 1 => 한 행의 사이즈 3차원 주소 + 1 => 한 면의 사이즈. 4. 첨자( [] )와 에스터리스크의 관계 [] *..
한 명의 국어, 영어, 수학 점수를 입력받아서 총점과 평균을 나타낸다. #include int main() { char name[10];//이름 int score[4] = { 0 };//국어 영어, 수학, 총점 float avg = 0.f; int i, j; // input scanf("%s", &name[0]);//name //점수를 4개를 받는다. for (i = 0; i < 3; i++) { scanf("%d", &score[i]) ; //총점 score[3] += score[i]; } ////연산 //score[3] = score[0] + score[1] + score[2]; //평균 avg = score[3] / 3.f; // 출력 // c 언어에서는 항상 주소값이 필요하다. // 마지막에 항상..
배열 동일한 데이터타입을 메모리상에 순차적으로 나열한다. 배열 사용 하는 방법 int arr[10]; (arr[0] ~ arr[9]) 배열을 입력하지 않았을 경우. int arr2[2][3] = {1, 2, 3,}; // 배열을 선언과 동시에 초기화를 할 경우 전부 다 하지 않은 비워진 값은 초기 값 0으로 등록이 된다. #define _CRT_SECURE_NO_WARINGS #include #include int total(int a, int b, int c); float avg(int a, int b, int c); int main() { int select = 0; int num1 = 0; int num2 = 0; int mat = 0, kor =0, eng =0; //한 반당 3명, 3개의 반이 ..
함수 모듈화 1. call by name 2. call by value 3. call by address // 4. call by reference (C++ 넘어가면서 refernce 개념이 생겼기 때문에 c언어에서는 사용 할 수 없다.) 함수 사용하기 #include #include // 1. 선처리부에 함수 정의 선언 void output(); void output2(int a); int output22(int a); int main() { int a = 10; output(); // 3. 함수 호출 output2(a); a = output22(a); printf("a = %d\n", a); return 0; // 0 : 문제 없음. -1 : 문제 있음. } // 2. 함수 정의 void output..
YAML 실행하기 yaml 사용 import yaml yaml_data = """ color_def: - &col1 "#ff0000" - &col2 "#00ff00" - &col3 "#0000ff" color: title1: *col1 title2: *col2 title3: *col3 """ data = yaml.load(yaml_data) print("title1 = ", data["color"]["title1"]) print("title2 = ", data["color"]["title2"]) print("title3 = ", data["color"]["title3"]) YAML 실행하기 2 # YAML 데이터를 파이썬으로 읽어오기 import yaml #yaml 데이터 정의 yaml_data = ""..
#파이썬으로 json 분석하기 import urllib.request as req import os.path import json #json데이터 다운로드하기 url = "https://api.github.com/repositories" fileName = "rep.json" if not os.path.exists(url): req.urlretrieve(url, fileName) jsonData = open(fileName, "r", encoding="utf-8").read() data = json.loads(jsonData) for dat in data: print(dat["name"] + " - " + dat["owner"]["login"])
리엑트를 시작하기 위해 Node.js부터 설치 시작하겠습니다. 저는 현재 이 Youtube 보고 진행하였습니다. youtu.be/nahwuaXmgt8 1. 검색창에 노드JS 검색 한 후에 해당화면이 바로 보입니다. Node.js를 설치 진행 합니다. 저는 유튜브 강의를 듣고 설치를 진행하였습니다. 영상의 기준은 2020년 6월 26일. 저는 11월 13일. 노드js 설치할 때는 최신버전 설치해주세요. 2. Visual Studio Code 설치 Visual Studio Code 또한 설치 진행 합니다. 코드 편집을 위한 에디터입니다. 터미널을 다루시지 않겠다고 하시면, 설치 진행 바랍니다. 3. 저장공간 만들기 이제 코드 작성을 하실 때, 코드를 저장하기 위한 저장공간을 원하는 곳에 지정을 합니다. 개인..
네이버 api (개발자) 제공 사이트 : developers.naver.com/docs/search/news/ # 네이버 검색 API예제는 블로그를 비롯 전문자료까지 호출방법이 동일하므로 blog검색만 대표로 예제를 올렸습니다. # 네이버 검색 Open API 예제 - 블로그 검색 import os import sys import urllib.request client_id = "네이버 클라이언트 ID" client_secret = "네이버 클라이언트 시크릿" #뉴스 키워드 검색 encText = urllib.parse.quote("it") url = "https://openapi.naver.com/v1/search/news.json?query=" + encText # json 결과 # url = "ht..
API 사용하기 간단한 api 사용하는 방법에 대해 소개하겠습니다. api 제공 사이트 세계의 날씨 사이트 openweathermap.org/ Сurrent weather and forecast - OpenWeatherMap 2 Billion Forecasts Per Day 2,500 new subscribers a day 2,600,000 customers 20+ weather APIs 2 Billion Forecasts Per Day 2,500 new subscribers a day 2,600,000 customers 20+ weather APIs openweathermap.org 회원가입 진행 후 => api 키를 발급받습니다. api 키는 이 화면에서 회원이면 누구나 받아 올 수 있습니다. 제 a..
www.youtube.com/watch?v=UWb8WZBEEWo 머신러닝이란? 스스로 학습을 통해서 자기 모델의 성능을 향상시킬 수 있는 알고리즘 보편적인 알고리즘을 통칭해서 머신러닝이라고 부릅니다. 일반적으로 우리가 계속 소프트웨어 쪽에서 난제로 여겨졌던 이미지, 음성등 분석해야 할 패턴들을 코딩으로 규칙으로 짜기에는 성능이 좋을 수가 없습니다. 그래서 이런 알고리즘들, 어떤 다양한 규칙들을 데이터를 기반으로 해서 스스로 학습을 하면서 성능을 향상할 수 있는 이런 알고리즘기법들을 통칭으로 머신러닝이라고 합니다. 딥러닝이란? 머신러닝의 한 기법의 하나 입니다. 그리고 이게 심층신경망이라해서 사람의 뇌를 묘사합니다. 우리가 만약 음식을 먹는다면, 우리 뇌의 대뇌피질에서 그 자극신호를 받아서 그것들을 화학적..
앞서서 먼저 jsp를 배우다보니 확장명은 jsp로 만들었습니다. 또한 지금은 만드는 과정 중간부분이므로 html 문구는 100% 작성 형태는 아닙니다. JSP(HTML) DreamCoding Home Gallery Weddings FAQ Bookings 가장 간단하게 nav로 영역을 지정하였습니다. 메뉴를 만들고, 로고와 리스트를 만드는 과정입니다. 평상시처럼 nav와 ul, li를 통해 만듭니다. 테그 는 순서 없는 리스트를 만들 때 주로 사용합니다. 여기서 css 로고에 관한 Tip을 드린다면, 이 사이트에 가입후 인증을 받게 된다면, 간단하게 스크립트에 링크 하나 주므로써 로고를 자유롭게 사용 할 수 있게 됩니다. 로고의 작업이 간편화 됩니다. 저는 여기 사이트에서 사용하는 이미지 파일을 사용하므로..