1. 진수, 16진수의 표기법.
  2. 포인터. int n; print("%p",&n); 혹은 int *p = &n으로 받아 printf("%p",p) 하면 주소가 표시된다.
    값을 표기하려면 printf("%i",*p); 를 사용하면된다.
  3. 표인터는 왜 8바이트를 차지할까? 그건 그렇고 포인터는 데이터 값이 담긴 주소를 알려주는것이다.
  4. string s[] = "wow";
    char *p = &s[0]; //&는 주소
    printf("%p", p);
    printf("%p", s);는 같은 주소값을 불러온다.
  5. char *s = "HI!"
    printf("%c",*s);
    printf("%c",*(s+1));
    printf("%c",*(s+2));
  6. int a == int b 의 불린값은 True가 나올수있지만 string a == string b 는 True가 나오지 않는다. 왤까? 메모리 주소가다른, 청크가 다른 값을 보기에 컴퓨터가 다르다고 판단한것이기 떄문이다. 이걸 해결하려면 char *a 과 char *b를 받았을경우 strcmp(a,b) == 0 을 통해 True값을 받을수있다.
  7. 두 포인터가 같은 주소를 가르킴으로써 주소값이 바뀌면 두 포인터가 바뀌는것을 볼수있다.
  8. char *t = malloc(strlen(s+1)); 이것과 char *을 같게 하기위해 반복문을 써도돠고 strcpy(t, c)를 활용해도 된다. 그럼 t = toupper(t[0])
  9. 대문자로 쓰기전에 받은 문자가있는지 확인하기위해 strlen(t) >0 조건문으로 하는게 정확하다. 
  10. 변수의 값을 초기에 초기화하지않으면 garbage값이 들어간다. 포인터, *x, *y. 주소가 없는 *y에 값을 넣으려면 가비지값이 들어간다. x는 
  11. main함수에 값을 return하지않거나 전역변수를 수정하지않는이상 main의 변수의 값은 변경도지ㅣ않는다. 혹은 포인터를 활용하여 메모리값을 지역함수에서 활용할수있게하여 포인터의 값을 바꾸면된다, 그러니 지역함수를 받을때 (&a, &b) 포인터 주소로 받아가 *a, *b로 처리한다.
  12. char *c = malloc(4);
  13. 이미지를 불러올때 필터로 RGB값을 조절하여 새로운 bmp파일을 만들수도 있다.

'🎓Harvard CS 50🎓' 카테고리의 다른 글

하버드 CS50 .06  (0) 2023.03.01
하버드 CS50 .5  (0) 2023.03.01
하버드 CS50 .3  (0) 2023.02.28
하버드 CS50 .2  (0) 2023.02.28
하버드 CS50 .1  (0) 2023.02.27

+ Recent posts