Array
int a[요소 개수];
선언한 이후에는 '위치'가 된다
cf. in Java : int []a = new int[100];
자바의 레퍼런스 타입은 힙이라는 메모리 공간을 쓴다 (array, object)
C++은 본인이 Heap으로 잡을 수도, Stack으로 잡을 수도 있다!
int a = 10;
char b = 'a';
float c = 2.4f;
printf("%d %c %f \n", a, b, c); in C
=> cout <<(비트 시프트 연산자(x) 이건 객체와 같이 써서 출력 연산자)
,(콤마)로 구분하는 게 아니다!
cout << a << b << c;
[입력]
scanf("%d %c %f", &a, &b, &c);
C에서는 개발자가 주소값을 직접 명시해줘야 했다
=> cin(입력 객체) >> a >> b >> c;
c++에서는 실수형 뒤에 0이나오면 절삭해버린다
차이점
\n은 버퍼해주진 않는다
endl은 버퍼를 비워준다
C++에서의 레퍼런스 == 닉네임
기능은 포인터처럼 쓸 수 있다
문법적으로는 코딩은 call by value
기능적으로는 call by address
즉, 별표를 안쓰고 포인터처럼 쓸 수 있다
※ 선언과 동시에 &쓸때는 레퍼런스 변수 선언이다!!
int a; // int type을 a라는 이름으로 부를거야(참조할거야) 의 뜻(마치 포인터처럼)
&a; // a의 주소값
이 메모리에 또다른 닉네임이 있다
자바는 바꿀수 있지만 C++은 한번 참조하면 절대 바꿀 수 없다!
ㆍ 하나만 참조할 수 있다!
레퍼런스 변수는 무조건 선언과 동시에 초기화를 해야 한다!