GIT
GIT의 사용 흐름
GIT의 내부 구조
GIT commit-push 간단한 정리
1.
코드 작성
2.
git remote add origin “원격 저장소 주소”
3.
git remote -v로 잘 연동되었는지 확인
4.
git add . ( .하면 모든 파일 add, 특정 파일만 원한다면 git add [파일명])
5.
git commit -m “커밋 코멘트”
6.
git status로 잘 commit -a 되었는지 확인
7.
git push origin master로 원격저장소에 commit한 내용 push하기
(이때 만약 안된다면 git push origin +master로 push하면 잘 된다.)
포인터
포인터를 왜 사용할까?
컴퓨터에서도 주소는 방대한 메모리에서 해당 변수가 저장되어 있는 위치를 정확히 알려주는 역할을 한다. 포인터 변수는 저장된 주소를 통해 언제든지 해당 변수에 접근할 수 있게 된다.
// 문제 : 원본값을 훼손하는 change 함수를 만들어주세요.
#include <stdio.h>
// 수정가능지역 시작
void change() {
int num;
printf("== change 함수 시작 ==\n");
printf("&num : %ld\n", (long)&num);
printf("== change 함수 끝 ==\n");
----------------------------------------------------------------------------------------
int* p = (&num + N); // 호출전후의 x의 주소값을 비교해보고 차이나는 수를 /4해서
//더해주면 된다. 4로 나누는 이유는 정수형은 바이트이기때문
*p = 50;
----------------------------------------------------------------------------------------
}
// 수정가능지역 끝
int main(void) {
int x = 20;
printf("&x : %ld\n", (long)&x);
printf("change 함수 호출하기 전의 x : %d\n", x);
change();
printf("change 함수 호출한 후의 x : %d\n", x);
// 출력 => change 함수 호출한 후의 x : 50
return 0;
}
JavaScript
복사
// 문제 : 원본값을 훼손하는 change 함수를 만들어주세요.
#include <stdio.h>
// 수정가능지역 시작
void change() {
int num;
printf("== change 함수 시작 ==\n");
printf("&num : %ld\n", (long)&num);
printf("== change 함수 끝 ==\n");
int* p = (&num + 11);
*p = 50;
}
// 수정가능지역 끝
int main(void) {
int x = 20;
printf("&x : %ld\n", (long)&x);
printf("change 함수 호출하기 전의 x : %d\n", x);
change();
printf("change 함수 호출한 후의 x : %d\n", x);
// 출력 => change 함수 호출한 후의 x : 50
return 0;
}
위는 직접 변수에 할당되는 값을 수정하지 않고, 포인터를 통해 값을 수정하는 예시이다.