#include <iostream>
using namespace std;
int main() {
// 스택에 1바이트 10개의 공간 할당받아 해당 주소에 값이 저장됨.
// char[9]에는 \0 저장. null? 값임
char str[10] = "123456789";
char *p;
p = str; // p = &str[0] 과 같음.
// 123456789 출력
cout << str << endl;
// p가 가리키는 주소(ex>0x7ffffffffb8e)(&str[0]), p가 가리키는 주소 안의 값(1)(str[0])
cout << (void *)p << " " << *p << endl;
p++;
// p가 가리키는 주소 + 1(ex>0x7ffffffffb8f)(&str[1]), p 가 가리키는 주소 + 1 안의 값(2)(str[1])
cout << (void *)p << " " << *p << endl;
}
#include <iostream>
using namespace std;
// ./args 250 입력 예시
int main(int argc, char *argv[]) {
// argc 는 command line arguemnts의 개수(명령행 인자의 개수)
// argv 에는 8바이트의 주소가 들어가 있다. (64bit OS 기준)
// ./args 출력
cout << argv[0] << endl;
// ./args가 저장되어 있는 주소 시작지점 8바이트 출력
cout << (void *)argv[0] << endl;
// argv 배열의 시작지점 주소 출력(&argv[0])
cout << &argv[0] << endl;
// . 출력
cout << *argv[0] << endl;
// 2 출력
cout << sizeof("a") << endl;
}