본문 바로가기

공부/c언어

8진수, 16진수 변수 저장 및 화면 출력 %o 는 8진수를 출력하기위한 출력 서식이다.(octant number의 o를 따왔다.) %x는 16진수를 출력하기위한 출력 서식이다. (hexadecimal number의 x를 따왔다.) 정수형 변수에 값을 입력할때 맨 앞에 0을 붙여주면 자동으로 8진수로 인식한다. 또한 정수형 변수에 값을 입력할때 맨 앞에 0x를 붙여주면 자동으로 16진수로 인식한다. 이때 이 변수들을 출력할때, %# 서식을 사용하지 않는다면 사용자가 판독하기 힘들다. 예를들어, 01100101 이라는 8진수 값을 어떤 변수에 입력했다고 하자. 이때 그냥 %o로 출력한다면 1100101이라고 나온다. 이렇게 된다면 이 값이 2진수인지 8진수인지 판별하기 힘들다. 그래서 나온 서식이 바로 %#o이다. %#o서식으로 출력한다면 맨앞에 .. 더보기
문자열 상수 char* str="qwerty"; //str이 라는 포인터가 문자열의 첫글자주소를 가리키게 되잖아요 그러면 qwerty라는 문자열은 어디에 저장되는건가요 ? // 여기에 대한 답은 문자열상수는 선언시 컴퓨터의 메모리 어딘가 읽기 전용 영역에 연속하여 메모리가 // 생성됩니다. 이렇게 생성된 주소를 포인터가 맨앞의 주소를 참조하는것입니다. // 문자열 상수입니다. 문자열을 이와 같이 선언하면 // 배열이나 문자열이 묶음 자료 전체를 나타내는 경우는 sizeof 연산자와 & 연산자를 사용하는 2가지 경우 뿐이고 // 나머지는 모두 첫번째 자료가 저장된 메모리의 주소로 사용됩니다. // 문자열 상수는 특별히 읽기 전용 영역에 저장되어 수정할 수 없도록 하고 있습니다. 같은 문자열이 여러 번 사용될 때, //.. 더보기
c언어 공부 프로젝트 (v1.2) 더보기
scanf함수에서 \n을 사용하면? http://msdn.microsoft.com/ko-kr/library/vstudio/kwwtf9ch(v=vs.100).aspx White-space characters: blank (' '); tab ('\t'); or newline ('\n'). A white-space character causes scanf to read, but not store, all consecutive white-space characters in the input up to the next non–white-space character. scanf("\n"); 띄어쓰기 들여쓰기 한칸넘기기를 함수 안에 사용하면 입력으로 띄어쓰기 들여쓰기 한칸넘기기를 읽어 들이기는 하지만 저장은 하지 않음 더보기
문자열 초기화 char a = "abc"; a[0] = 'b'; 더보기
volatile과 restrict변수 volatile 컴파일러에게 변수의 값이 프로그램이 아닌 다른 매개체(하드웨적인면)에 의해서 변경될 수 있음을 알린다. 이 한정자가 사용되는 곳은 일반적으로 하드웨어 주소라든지 동시에 실행되고 있는 다른 프로그램 과의 공유되는 데이터입니다. va11 = x; va12 = x; 라고 했을떄 x값은 바뀌지 않은체 2번 사용된다. 컴파일러는 원래의 x의 레지스터에 가서 x라는 값을 읽어 오는데 만약 이때 x라는 값이 외부 요인(하드웨어)에 의해 변경 되었다면 va12에는 변경된 값이 들어가야 할텐데 컴퓨터는 volatile가 쓰여 있지 않은 변수에 대해서는 바뀌지 않는다고 가정하고 그대로 적용하고 코드의 최적화를 실행하기 때문에 반드시 volatile를 써줘서 x값을 나타내야 한다. restrict 이 키워드.. 더보기
컴퓨터 입출력 방식 컴퓨터의 입출력 방식 = 스트림(운영체제에 의해서 만들어지는 소프웨어적인 다리) 주요한 스트림 3가지 스트림 1. 실행중인 프로그램 콘솔 2. 실행중인 프로그램 파일 3. 실행중인 프로그램 네트워크 상의 다른 컴퓨터 커널 오브젝트(FILE*, stdout, stdin 등등)(== 논리적 파일) 프로그램은 커널 오브젝트에 대한 주소를 알고 있음 커널 오브젝트(논리적 파일)에는 장치(물리적 파일)에 대한 정보가 있고 이를 이용하여 장치를 관리 및 운영함 사용자는 커널 오브젝트(논리적 파일)의 주소를 이용하여 쓰거나 읽는 함수를 호출하면 논리적 파일에 정보를 쓰거나 읽는 동작을 OS가 이를 인지하여 장치(물리적 파일)에 읽거나 쓰는 동작을 함 쓰기 동작은 1. 커널 오브젝트의 버퍼에 장치로 보낼 정보를 저장 .. 더보기
feof()함수 feof()함수 파일에 저장된 내용 아나다라마 실제로 파일에 저장되어있는 내용 아나다라마(eof) 실제 파일을 열어서 눈으로 봤을 때는 마지막에 eof(=-1)가 보이지는 않음 위의 파일에서 "아나다"를 읽었다면 파일포인터는 '라'를 가리키게 됨 반환값: 파일의 마지막(eof)을 넘어서 feof함수를 호출하면 0이 아닌 값을 반환 위에서 파일의 마지막은 'eof'이다 마지막을 넘었다는 것은 'eof'보다 뒤에 파일 포인터가 위치해있다는 것이다 파일의 마지막(eof) or 그 이전에는 feof함수를 호출하면 0을 반환 Return Value The feof function returns a nonzero value after the first read operation that attempts to rea.. 더보기