

#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; }