변수 8

기본 문법 요약 정리

코드 구조 여러 개의 구문은 세미콜론을 기준으로 구분할 수 있음 세미콜론 자동 삽입: 줄 바꿈도 여러 개의 구문을 구분하는 데 사용되므로 아래 코드는 정상적으로 작동함 alert('Hello') alert('World') 세미콜론 자동 삽입이 동작하지 않을 때도 있음 alert('이 메시지가 출력된 후에 에러가 발생한다.') [1, 2].forEach(alert) 따라서, 문장의 끝에 세미콜론을 붙이는 것을 권장 코드 블록이나 코드 블록과 함께 구성되는 문법(ex. 반복문) 끝엔 세미콜론을 붙이지 않아도 됨 functon f() { // 함수 선언문 끝엔 세미콜론 필요 없음 }} for(let i = 0; i < arr.length; i++) { // 반복문 끝에도 세미콜론 필요 없음 }} 엄격 모드 자..

JavaScript 2023.11.09

variable, let vs var, hoisting, data types

Variable, rw(read/write 가능) let (Mutable data type, added in ES6) let globalName = 'global name'; // 글로벌 변수 { let name = SA; // name 이라는 변수에 값을 할당 console.log(name); name = 'hello'; console.log(name); } // {}는 블록 스코프 console.log(name); // 블록 스코프 안에서 선언했으므로 출력 불가 console.log(globalName); // global name 이 출력됨 var (don't ever use this!) 이전에 변수 선언을 했으나, ES6 부터는 사용하지 않음 블록 스코프를 철저히 무시함 { age = 4; var..

JavaScript 2023.06.02

let 변수, const 변수

let 변수 개요 let book = "책"; 블록 스코프를 가진 변수로, 변수가 선언된 블록이 스코프 스코프 적용 기준: 블록{}, 문, 표현식 블록{} 안과 밖의 스코프가 다름 변수 이름이 같아도 값이 대체되지 않음 let 변수 선언 Syntax let name1 [= value1] [, name2 [= value2]] name1, name2에 변수 이름 작성 식별자로 사용 []는 생략 가능을 나타냄 값을 할당하지 않아도 됨 let book; // 값을 할당하지 않고 변수만 선언할 수 있음 let one, two; // 콤마로 구분하여 다수를 선언할 수 있음 value1, value2에 초깃값 작성 표현식 작성 가능, 평가 결과 사용 let book = "책"; let one = 1, two = (1..

JavaScript 2023.05.29

static 변수

static 변수란? 단 한번만 초기화하고, 그 이후에는 전역변수처럼 프로그램이 종료될 때까지 메모리 공간에 존재하는 변수 초기값이 지정이 안되면 자동으로 0이 대입 지역 변수 사용 void test(){ int a = 10; a++; printf("%d", a); // test 함수를 두번 수행한 결과 11 11 이 출력됨 } void main(){ test(); test(); } static 변수 사용 void test(){ static int a = 10; a++; printf("%d", a); // 첫번째 test 함수를 수행한 결과인 11이 초기화 되지 않으므로 두번째 결과는 12 가 출력됨 } void main(){ test(); test(); } #include void funCount();..

C 2023.04.11

함수에 주소 전달/리턴, 함수와 변수의 유효범위

함수에 주소 전달 #include int main(void){ int x = 10, y = 20; printf("%d", f(&x, y)); // f 함수에서 리턴된 51 출력 printf("%d %d\n", x, y); } int f(int *i, int j){ // *i = x의 주소값, j = y 값을 대입 *i += 5; // *i = *i+5, *i는 x의 주소값이므로 10+5 return(2 * *i + ++j); // 2*15 + (20+1) 이므로 51 이 리턴 } 함수와 변수의 유효 범위 include int a = 1, b = 2, c = 3; // 전역 변수 int f(void); int main(void){ // f 함수의 결과로 12가 리턴됨 printf("%3d\n", f());..

C 2023.04.11

1차원, 2차원 배열과 포인터

배열과 포인터의 관계 int a[5]; // a라는 배열 0~4까지 생성 int*b = a; // 포인터 변수 b는 a의 주소값 a[2] = 10; // 배열 a[2]의 값은 10 b[2] = 20; // 포인터 변수 두번째 공간이므로 배열 a[2]의 값이 20 #include int main(void){ int i; int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; // 배열로 나열 int *ptr = a + 3; // ptr의 값은 a의 주소값 100 + 3 for(i = 0; i < 5; ++i){ // i값이 5보다 작을 때까지 아래 괄호문 수행 printf("%d", *(ptr+i)-3); // 괄호안의 ptr+i 를 먼저 수행한 다음 가리키는 값 대..

C 2023.04.03

배열, 포인터, scanf

배열이란? 같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간 배열의 선언 int a [5]; ※ a[6] 은 없기 때문에 오류가 난다. 이차원 배열 같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어 놓은 것 void main(){ char msg[50] = "Hello World! God Luck!"; int i = 2, number = 0; while(msg[i] != '!'){ // !와 같은 값이 나올때까지 반복 if(msg[i] == e'a' || msg[i] == 'e' || msg[i] == 'i' || msg[i] == 'o' || msg[i] == 'u') number++; // if문이 참일때 수행함 i++; // if문이 거짓일때 수행함 } printf("%d", number);..

C 2023.03.28

변수의 종류와 유효범위

변수 데이터를 저장할 수 있는 메모리의 기억공간 변수 생성 규칙 및 특징 예약어(키워드)는 사용할 수 없다 공백을 포함할 수 없다 첫 글자는 영문과 언더바(_)만 사용이 가능하다 언더바(_) 이외의 특수문자는 사용할 수 없다 대소문자를 구분한다 예제) 다음 중 변수로 사용 가능한 것은? ▶ 1, 3, 4, 6, 7 사용 가능 데이터 타입(자료형) 변수 선언 int 변수명; int 변수명 = 초기값; 지역변수 함수/블록 안에서 선언하는 변수 함수/블록의 종료와 함께 메모리상에서 소멸 초기값이 없으면 쓰레기 값이 들어감 스택 영역에 저장됨 void main(){ if(1){ int num1 = 10; // if 블록 안에서 변수를 선언 printf("%d", num1); } printf("%d", num1)..

C 2023.03.08