명령어

cp Desktop /* c2022  // 데스크탑의 모든 파일을 c2022로 복사함

std::cout  // Stantdard Console Output 표준 출력 

std::endl // endl endline 줄바꿈

cat (원하는 파일명)// file 내용을 보여줌
cat a.cpp

g++ -g -o a a.cpp // 디버깅에 필요한 정보를 저장한다 라는 말

문자 vs 문자열

cout << 'a' << endl; // 문자, char type in C/C++
cout << "a" < < endl; // 문자열 string C에서는 그런 타입이 없음

"app"
"apple"
"a"
"" // null string
'a' // char
'apple' // error 컴파일 에러나옴 

변수 vs 상수

cout << 'a' << endl;

에서

cout << var << endl;

로 바꾸면, var 이라는 변수가 생기는거죠!

변수가 어디에 저장되냐?
-> 메인 메모리에 저장됨

메모리는 일련의 숫자주소를 가짐
가령, "0x100번지에 'a'를 대입하라" 라고 한다면,
일단 'a'를 8비트로 바꾸면 0110 0001 을 메모리 100번 공간에 넣는다고 생각하면 됨!

근데 우린 숫자보단 문자를 더 잘 기억하니, 숫자주소 대신 문자주소를 쓰고,
이 문자 주소가 결국 변수 라고 보면 됨!

var = expression 

LHS(Left Hand Side) (only 변수만 가능! )  =   RHS(Right Hand Side) (변수나 수식이나 아무튼 항상 결과값)

GDB

(gdb) l // 소스파일을 리스트해줌 10줄만 리스트해줌

(gdb) r // run : 프로그램을 시작함 

(gdb) b 7 // breakpoint 7번줄 앞에서 멈춤 

이 상태에서 실행하게 되면, 

(gdb) r
7          var = 'a'; // 에서 멈춤

var = 'a'; 가 실행 되었는지, 아닌지 알려면 

(gdb) p var // print var , 즉 var 을 실행해라 라는 말

$1 = 0 '\000'

(gdb)n // next 한 줄을 실행해라 란 말

(gdb) p var // 이 상태에서 p var 하면
$2 = 97 'a' // 이때, 97은 0110 0001 이니까 이를 십진법으로 바꾸면 97임 

(gdb) p &var // var 이 저장된 주소값을 알고싶다! 라고 하면
$3 = 0x7fffffffdd6f "a"

(gdb) c // continue 멈췄던 부분부터 프로그램을 시작한다 run은 처음부터 하는거! 

(gdb) q // quit gdb를 나간다 prompt로 돌아간다는 말 

변수

  • 변수는 데이터를 저장하는 공간'

    • 물건을 저장하는 상자와 같음
  • 변수 선언 : 컴파일러에게 어떤 변수를 사용하겠다고 미리 말하는 것

  • 변수 이름짓기 : 키워드를 제외한 알파벳문자, 숫자, _ (언더바) 사용가능, 다른 특수기호는 못 씀!, 대소문자 구별함

'TIL > [C++ 프로그래밍} TIL' 카테고리의 다른 글

TIL (22.03.21)  (0) 2022.03.21
TIL (22.03.20)  (0) 2022.03.21
TIL 4 (22.03.16)  (0) 2022.03.16
TIL 3 (22.03.16)  (0) 2022.03.16
TIL 1 (22.03.14)  (0) 2022.03.14