1%! 10%.

독하게 시작하는 C 제11장 메모리와 포인터 - 첫 번째

By  | 2018년 1월 19일 | 
ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁCell. 1byte 영문 한글자. 일련번호(주소)가 붙어있음. 자동으로 지정. ㅁㅁㅁㅁ맨 앞의 번지가 이름이 가리키는 번지. 이해 -> 메모리 특징(구조 + 관리) 지정 : 직접지정 : 변수선언(메모리) 위치는 컴파일러가 결정(Address Space Layout Randomization) 보안때문에 생김. 메모리 해킹 -> 어느 고정된 값을 변경. 근본적으로 차단하기 위해 주소가 매번 바뀌게 함. 설정에서 변경가능(일정한 곳으로 형성되게(공부할때!)) 간접지정 ㅁㅁㅁㅁ <- int nData.300-> 0x12C 0x0000012C가 2C010000로 // Little Endian. 주소 번지상 낮은 곳에 위치하게 바뀜. 변수 &

독하게 시작하는 C 제10장 함수에 대한 기본 이론

By  | 2018년 1월 17일 | 
함수 -> 무엇을 함수로 만들지?, 왜? -> 기준 : 설계. 대원칙 : UI와 기능을 분리. main() -Caller(호출자){ puts() - Callee(피호출자)} 함수 int main(void)int : 반환형식(정수형으로 반환)main : 함수의 이름. 본질은 메모리의 주소.(void) : 매개변수 목록을 채워넣어야 함.(여기서는 void 빈상태) #include <stdio.h> int Add(int a, int b){ // 함수 시그니처. 함수 원형.(매개변수는 형식 일치하더라도 (int a,b)이런식으로 못씀.) int a; // 에러 : 매개변수에 같은이름의 변수 있기 때문에. } #include <stdio.h> int Add(int a,

독하게 시작하는 C 제9장 - 배열을 활용한 프로그래밍 기법

By  | 2018년 1월 16일 | 
자리교환 매번 : 버블정렬 index를 지정해두고 자리교환 1번 : 선택정렬 .버블정렬이나 선택정렬이나 비교횟수가 동일함.(후짐)헷갈리면 메모리를 그려보면 된다(ㅁㅁㅁㅁㅁㅁㅁㅁㅁ) Quick sort가 평균 정렬속도가 가장 빠름. 선택정렬 : for(i=0;i<4;i++){ nIndexMin=i; for(j=i+1;j<5;j++){ if(aList[nIndexMin]>aList[j]){ nIndexMin=j; } } if(i!=nIndexMin){ nTmp=aList[i]; aList[i]=aList[nIndexMin]; aList[nIndexMin]=nTmp; } } 배열과 교차의 구현. 방향 > < . 기준, 근거에 따라.기법 3가지 !

독하게 시작하는 C 제8장 배열

By  | 2018년 1월 16일 | 
배열 : 아파트변수 : 단독주택. int aList[5] 밑줄 쳐진 것만 자료형 int[5]라고만 써줘도 sizeof에서는 상관없다.sizeof(int[5])와 sizeof(aList)와 같다. index는 번호. ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ첫번째 ㅁ이 0, 두번째 ㅁ이 1, 이때 0과 1이 index(인덱스) 변수의 이름 : 식별자.변수는 메모리로 구현됨.이름, 메모리(번지), 값. 배열의 이름은 그자체로 주소. 배열의 선두번지를 가리키는 포인터 상수.기준(배열의 선두번지)에서 상대적으로 얼마나 떨어졌는지로 위치를 표현함.참고 : &aList +1이라고 쓰면 배열 전체 끝에서 1 더한것. aList +1이라고 해야 aList[1]을 나타내는 것이 된다. int *pData=aList;번지는 포

독하게 시작하는 C 제11장 - 두 번째

By  | 2018년 1월 19일 | 
aList[]aList +1하면 주소 메모리 한칸 : 1byte 더하기가 아니라aList 의 자료형 * 1만큼 더하기 #include <stdio.h> int main(){ int aList[5]={40, 20, 50, 30, 10}; int *paList=aList; paList+1; *(paList+1); // paList 시작번지 + 1(paList 자료형 * 1 더함.) *(paList +1) = 5; paList[1]=5;} &, *는 서로 상쇄됨. %p 주소 나타내는 형식문자. #include <stdio.h> int main(){ int aList[5]={40, 20, 50, 30, 10}; int *paList=aList+1; paList[0]=1