전체 글(599)
-
국기3기 정규수업 8일차 메모
조건문, 반복문, 형변환 조건문 - 참과 거짓을 판별하기 위한 문법.논리 - 명제 자체를 (프로그램적으로) 명확하게 세워야한다. ex) 0은 거짓이다.(프로그램적으로 명제를 참으로 정의함.) 1도 참이다. 2도 참이다. 0이 아닌 것은 모두 참이다. if, if~else, if~else if~else else는 if가 아닌 모든 경우 if는 생략할 수 없다. 분기문 switch(조건) { case 1: // 실행 break; ... default: break; }조건 - 정수형이 되어야한다. 실수, 문자열은 안됨! dafault와 else는 에러처리를 위해 사용. case lable 에러 - 스위치와 케이스의 변수의 애매함으로 인해 생기는 문제. 괄호를 해주는 습관! if else 문장은 -> switc..
2015.03.09 -
20150308 토론정리
오프라인 토론 - 혼자 연구하는 C/C++15장const int ** int * const *int const ** 의 차이. 오늘 쪽지 시험 봄.함수 설계 원칙 6가지1. 함수의 이름만 봐도 그 기능을 알 수 있게 해라 2. 한 번 이상 반복되는 코드는 반드시 함수화 하라3. 반복되지 않더라도 한 단위로 볼 수 있는 것은 함수화하라4. 입 출력을 명확하게 해야한다.5. 하나의 함수는 한가지 기능만 해야한다6. 함수 스스로가 오류처리를 할 수 있어야한다 define 상수를 사용할 때는 반드시 각 요소마다 괄호를.((i)*(i)) volatile 키워드를 변수에 붙일 경우. 해당 변수가 최적화되어 개발자의 설계 목적과 다른 방향으로 가는 상황을 막는다.ex) 외부에서 변경이 가능하게 설계된 것인데.. 컴파..
2015.03.08 -
[c++] main함수의 인자 argc, argv
1. argc, argv 메인 함수도 함수기 때문에 값을 전달하고 리턴도 할 수 있다. argc는 argument count로 들어오는 인자들의 수를 저장한다. argv는 문자열 상수를 캐릭터 포인터 배열로 저장한다. 메인 함수의 형태는 다음과 같다. int main(int argc, char* argv[]) 메인 함수 진입시 외부에서 들어오는 인자들을 컨트롤하기 위한 방법이다. 2. 작성 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main(int argc, char* argv[]) { int i = 0; printf("argc = %d\n", argc); for (i = 0; i cmd로 명령프롬프트에 들어간다. 해당 경로를 찾아가 naver.exe에 직접 인자들..
2015.03.07 -
혼자 연구하는 C/C++ 13장 정리(구조체)
1. 구조체란?구조체(Structure)를 문장화하여 정의 내리면 "타입이 다른 변수들의 집합"이라고 할 수 있으며 더 간단하게 표현하면 이종 변수 집합이다. 배열은 동종의 변수 집합이다. 기본형식1struct { 멤버목록 } 변수명;cs 2. 구조체 태그구조체 변수가 하나만 필요하다면 위의 기본 형식을 따르면 된다. 하지만 태그를 정의하고 이 태그로 구조체 변수를 선언하는 것이 일반적이다. 구조체 태그는 열거형의 태그와 마찬가지로 타입에 대해 이름을 붙이는 것이다. 기본형식1struct 태그명 { 멤버 목록 };cs 키워드 struct 다음에 태그의 이름을 주고 멤버 목록을 나열한다. 태그도 일종의 명칭이므로 명칭 규칙에만 맞다면 자유롭게 사용해도 된다. 일반적으론 tag_라는 접두어를 사용한다. C ..
2015.03.07 -
20150307 토론정리
오프라인 토론 - 혼자 연구하는 C/C++ 정리11장 배열과 포인터c에는 실제로 2차원 배열은 없다- 왜냐면 메모리는 선형 구조이기 때문이다.메모리상에는 선형으로 정의된다. 배열은 사실 포인터다. 첨자 연산은 내부적으로 포인터의 값 증가.- 서기가 적어놓은 것이긴 하지만. 배열이 포인터란 말은 조금 이상하지싶다.배열 접근의 내부적 연산이 배열과 같다는 것이지 배열이 포인터라고 표현하는건 조금 아닌거같다.배열의 배열명은 시작 주소를 가지는 포인터 상수이다.ar[10]이란 것이 있다면 컴파일러는 내부적으로 이것을 *(ar+10)으로 바꿔서 접근한다.그렇기 때문에 일반적으로 배열이 포인터보다 아주 살짝 느리다. 포인터 배열 = 요소가 포인터인 배열. 끝.이중 포인터 배열 **ptr[3]이라면 **ptr을 3개..
2015.03.07 -
20150306 토론정리
혼자 연구하는 c 정리.3장 [ 변수 ]진법 변환 주소 값은 왜 16진수?- 메모리 체계에서 2진 비트단위로 나타내는데 1바이트는 4바이트씩 2개해서 8바이트다.바이트 단위로 4개를 읽기 위해서 4비트로 표현할 수 있는 수는 16가지다.그래서 이를 활용하기 쉽게 16진수로 표현하는 것이다.실제 10진 정수형이었다면 자릿수가 바뀌고 사용하는데 매우 불편했을 것이다. 변수의 정의- 사전적 의미론 변할 수 있는 수, 데이터의 보존과 관리를 위함이다. 메모리 관리를 효율적으로 할 수 있다. int a를 선언하면 일어나는 일- 32비트 운영체제로부터 메모리공간 어딘가에 int형 정수 4바이트 만큼 할당받고그 주소위에 a라는 방을 만들고 그 방엔 쓰레기값이 들어있다. 왜 쓰레기 값이 다 같은가?- 내가 제시. 디버..
2015.03.07