전체 글 34

scanf( ) 함수의 사용법

scanf( ) : 주어진 문자열 스트림 소스에서 지정된 형식으로 데이터를 읽어내는 기능을 하는 함수 #include #include //intmax_t int main() { /* multiple inputs with blank separators */ int i; float f; char str[30]; scanf("%d %f %s", &i, &f, str); // scanf에서는 double 구별해줘야함, printf에서는 double과 float 구별 X // Note % is asent in front of str printf("%d %f %s\n", i, f, str); # 빈칸이 있으면 끊어버린다. /* character */ char c; scanf("%c", &c); // try blan..

printf( ) 함수가 인자들을 해석하는 과정

float의 경우, 4바이트지만 복사되는 과정에서 printf( ) 함수가 8바이트 double로 바꿔서 저장 ※오류난 부분 분석※ - 13번째 줄 n1은 float, %d는 4바이트이기 때문에 n2에 맞지 않음, 연쇄적으로 오류값이 저장되기 때문에 n3도 오류 발생 - 14번째 줄 %lld는 8바이트이나 n1, n2의 데이터형에 맞지 않는 변수, 앞의 데이터 크기가 맞고 정수를 나타내는 %d를 써서 n3만 올바르게 출력 - 15번째 줄 %f로 n1에 맞는 데이터형, %d는 n2의 데이터형과 데이터크기에 맞지 않음, n3은 n2의 데이터크기 오류로 오류 발생 - 16번째 줄 %f로 n1에 맞는 데이터형, %lld는 데이터 크기는 맞지만 실수에 맞지 않는 데이터형, 앞에서 데이터 크기를 맞췄기 때문에 %d..

변환 지정자의 수식어들

위의 변환 지정자 수식어를 사용한 코딩 예시입니다. 출력값이 어떻게 나올지 예상해보세요~ 코드 줄 출력값 7 1234567 8 1234567 9 +123 -123 10 123 -123 11 11 12 0#11 13 00123 14 456 17 1024 18 01024 19 123456.123 20 123456.124 21 123.457 22 000123.457 23 ABCDE 24 27 1 257 257 28 - 2147483648 2147483648 2148483648 14줄 오류: printf("%1*i\n", 7, 456); -> printf("%*i\n", 7, 456);

기호적 상수와 전처리기

기호적 상수 : 특정 상수에 변수처럼 이름을 부여한 것 매번 3.141592f를 입력하는 것이 번거롭다, 매번 똑같은 이름을 입력하는 것이 번거롭다면 => 기호적 상수 이용할 것! 1. #define 선언 -> 변수로 설정할 이름 설정 (보통 대문자로) -> 한 칸 띄우고 변수에 해당하는 값 입력 ※주의사항※ 옳은 예시 #define PLUS 3 잘못된 예시 #define PLUS =3 : PLUS에 3이 들어가는 것이 아니라 '=3'이 대입된다는 의미 2. const 이용 const float pi = 3.141592f or float const pi = 3.141592f

sizeof 연산자

1. sizeof basic types int, float 모두 4 bytes 2. sizeof arrays sizeof (int_arr) = 4 (size of int) * 30 (문자열) = 120 bytes sizeof (int_ptr)은 런타임과 관련있어서 sizeof (int_arr)와는 다름, 구체적인 설명은 포인터 시간에 배울 것 3. sizeof character array char_size = 1 bytes str_size = 1 * 10 = 10 bytes 4. sizeof structure int = 4 bytes, float = 4 bytes sizeof (struct MyStruct) = 8 bytes (size of int+float)

문자열 입출력하기

char a의 경우 Apple이 나올 것이라고 예상했던 것과는 다르게 'A'만 나옵니다 ㅠㅠ Apple이라는 문자 전체를 출력하고 싶다면 문자열을 사용해야합니다! char a[number]의 경우 위의 경우와 차이점은 1. char 문자 => char 문자 [숫자] 2. scanf ("&c", &fruit_name); => scanf ("&s", fruit_name); 문자열을 사용해줬기 때문에 string을 나타내는 's'로 바꿔주기, 메모리 주소로 바꿀 필요가 없어서 '&' 지우기 3. printf("You like &c", fruit_name); => printf("You like &s", fruit_name); 바라는대로 'Apple' 출력!