본문 바로가기

공부/c언어

main함수의 인자 char a[4] = "123"; printf("%s\n", a); 위에서 a는 문자열 123을 시작주소를 나타냄 %s는 시작주소를 알려주면 그 시작주소부터 \0가 나오기 전까지의 문자들을 화면에 출력해 줌 char* a = "123"; //char* a; //a = "123"; printf("%s\n", a); 위에서 a는 문자열 123을 시작주소를 나타냄 %s는 문자열의 시작주소를 알려주면 그 시작주소부터 \0가 나오기 전까지의 문자들을 화면에 출력해 줌(%s의 특징은 문자열의 시작주소를 인자로 받는다는 것이다) char* a = "123"; 문자열 123은 read-only영역에 저장되어짐 a는 read-only영역에 저장된 문자열 123의 시작 주소를 가지고 있음 read-only영역에 저장된 문.. 더보기
포트 확인 프로그램 #include #include int main() { char a[41] = "tcping -n 1 www.yahoo.co.kr > test.txt"; int i; for(i = 0; i < 10; i++) { a[28] = i+'0'; if(i == 0) { printf("=================================================\n"); } if(i != 0) { printf("=================================================\n"); } printf("%s", a); system(a); printf("=================================================\n"); } return 0; } 더보기
연산자 (c언어) 논리 연산자 &&, || (5 2) || (3 == 2) ||연산자의 앞 논리 값(5 >2)을 평가하여 1이면, 이 연산자는 더 이상 뒤의 논리 값(3 == 2)을 평가하지 않고, 논리 연산 &&의 평가 결과를 1로 결정 조건 연산자 exp1 ? exp2 : exp3 exp1이 0이 아닌 값(참)이면 exp2이 선택됨 exp1이 0(거짓)이면 exp3이 선택됨 비트 논리 연산자 (비트 단위로 논리연산을 수행) &(and), |(or), ^(xor), ~(not) 이동 연산자 (오른쪽 이동 연산자) 은.. 더보기
공용체 (c언어) 공용체 : 서로 다른 자료형을 동일한 저장 공간에 이용하는 자료형 union data { char ch; int cht; double real; } data1, *pdata; typedef union data uniondata; 변수 data1 : char(1바이트) int(4바이트) double(8바이트) 공용처의 초기값은 첫 멤버의 초기 값으로만 저장이 가능, 다른 동일한 변수의 값으로 초기화가능 uniondata data2 = {'A'}; uniondata data3 = data2; 접근 연산자'.' 이용, 포인터인 경우는 연산자'->'을 이용 pdata = &data2; printf("%2c %2c\n", pdata->ch, (*pdata).ch); printf("%2c %2c\n", data2... 더보기
구조체 (c언어) 구조체 모습 struct 구조체 태그 이름{ 자료형1 변수명1; 자료형2 변수명2; 자료형3 변수명3; }; 구조체 변수 선언 struck book { char title[50]; char author[50]; char publish[50]; } int main(void) { struck book mybook; } 구조체 태그이름을 사용하지 않으면 구조체의 변소를 선언할 때마다 구조체의 전체 구조를 다시 기술해야 됨 struct { char title[50]; char author[50]; char publish[50]; } mybook; struct { char title[50]; char author[50]; char publish[50]; } yourbook; typedef를 이용한 구조체 정의 1.. 더보기
메모리 관련 함수 (c언어) 메모리 함수 원형 기능 메모리 할당 (기본값 없이) void* malloc(size_t) 인자만큼의 메모리 할당 후 기본 주소 반환 메모리 할당 (기본값 0으로) void* calloc(size_t, size_t) 뒤 인자만큼의 메모리 크기로 앞 인자 수 만큼 할당 후 기본 주소 반환 기존 메모리 변경 (이전값 그대로) void* realloc(void *, size_t) 앞 인자의 메모리를 뒤 인자 크기로 변경 후, 기본 주소 반환 메모리 해제 void free(void *) 인자를 기본 주소로 갖는 메모리 해제 더보기
파일 처리 함수(c언어) 파일 구조 1. 핸들을 인자로 하여 파일을 쓰거나 읽는 함수호출 write(file*) 2. OS는 핸들에 해당하는 커널오브젝트의 내용을 보고 파일 물리적 위치에 연결되어 있는 스트림을 통해서 파일에 정보를 전달하거나 받아옴 3. 스트림 중간에 있는 버퍼에 정보를 읽거나 쓰기를 하고 한번에 정보를 모아서 보내거나 읽어옴 4. OS는 파일에 변화가 생긴 내용에 대해서 커널오브젝트의 파일에 관한 정보에 정보를 갱신함 fopen함수 FILE* fopen(const char*, const char*); 첫번째 인자 : 처리하려는 파일 이름 두번째 인자 : 처리하려는 파일 처리의 종류(모드) 파일을 열면 무조건 파일포인터는 0을 가리킴 모드 종류 모드 의미 r 읽기 모드로 파일을 열음 파일이 없으면 에러 w 쓰기.. 더보기
printf function(함수) - %s, %c차이 char *a = "1234"; printf ("%s, %c", a, *(a)); %s는 char *형을 요구 %c는 char형을 요구 %s는 주소값을 받고 그 주소값에 안에 저장되어 있는 문자를 시작으로 \0이 나올 때까지의 문자열을 출력 %c는 실제 문자을 받아서 그 문자열을 출력 더보기