변수사용없이 간편하게 사용가능하다.
arr는 point(맨 처음을 가르킴)
#include <stdio.h>
int main(void) {
// int arr[2000]; // 배열
// 나는 4바이트 짜리를 2000개 할당
// arr : 상수 포인터
// -> 해당 배열의 시작점
// arr[0] --> 배열의 시작점
int arr[3]; // 12바이트(4*3) -> 타입선언은 타입에 맞게 4평짜리 자리를 3개쓴다. (index 0부터 시작)
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
// 배열의 순회
for (int i = 0; i < 3; i++) {
printf("arr[%d] : %d\n", i, arr[i]);
}
// 배열의 총합
int sum = 0;
for (int i = 0; i < 3; i++) {
sum += arr[i];
}
printf("sum : %d\n", sum);
return 0;
}
-// 문제 : 배열에 숫자 2개 저장 후 저장된 각각의 숫자를 모두 출력해주세요.
// 조건 : 배열문법 사용불가
// 배열문법 : arr[0], arr[1];
// 힌트 : arr은 int 포인터 변수이다.
// 힌트 : arr은 첫 번째 상자의 주소를 가지고 있다.
// 힌트 : int배열이기 때문에 상자간의 거리는 4이다.
// 포인트로 접근하기!!!
#include <stdio.h>
#pragma warning(disable:4996)
int main() {
// 공간 3개가 만들어집니다.
// arr => 배열의 시작점을 가리키는 포인터 변수.
// arr => arr[0]변수의 주소값을 가진다.
int arr[2];
// 수정가능지역 시작
// arr => 첫번째 주소값에 값을 넣는다
// arr +1 => 두번째 주소값에 값을 넣는다
(arr+0) = 10;
(arr+1) = 20;
printf("arr[0]: %d\n", (arr+0));
printf("arr[1]: %d\n", (arr+1));
// 수정가능지역 끝
return 0;
}
#include <stdio.h>
#pragma warning(disable:4996)
int main() {
// 공간 101개가 만들어집니다.
// arr => 배열의 시작점을 가리키는 포인터 변수.
// arr => arr[0]변수의 주소값을 가진다.
int arr[100];
// 수정가능지역 시작
for (int i = 0; i <100; i++) {
(arr +i ) = i;
} //값을 돌려보기 위함
for (int i=0; i<100; i++){
printf("%d\n", (arr +i));
} // 값을 돌려보기 위함
// 수정가능지역 끝
return 0;
}
#include <stdio.h>
int main(void) {
int a[10];
// 배열의 값 세팅
a[0] = -10;
a[1] = 10;
a[2] = 100;
a[3] = 210;
a[4] = 310;
a[5] = 1440;
a[6] = 1130;
a[7] = 33210;
a[8] = 1210;
a[9] = 33210;
// 반복문과 변수 a 사용 가능
int max_number = 0;
// 구현 시작
for(int i =0; i<10; i++) {
int current_num = a[i];
if(current_num > max_number){
max_number = current_num;
}
}
// 구현 끝 //배열문법
printf("최대값은 %d 입니다.\n", max_number);
return 0;
}
/* 힌트
#include <stdio.h>
// 질문 : sub1 함수는 몇 바이트 짜리 함수 인가요?
void sub1() {
//0
}
// 질문 : sub2 함수는 몇 바이트 짜리 함수 인가요?
void sub2() {
int* arr; //포인트변수 -> 8
}
// 질문 : sub3 함수는 몇 바이트 짜리 함수 인가요?
void sub3() {
int arr[4]; //16
}
// 질문 : arr1의 메모리 구조와 arr2의 메모리 구조를 비교해서 설명해주세요.
void sub4() {
int arr1[4]; //16
int* arr2; // int만큼의 크기를 잡은 변수 -> 4
}
int main(void) {
sub1();
sub2();
sub3();
sub4();
return 0;
}
// 출력 : 아래와 같이 출력되게 해주세요.
class Main {
public static void main(String[] aregs) {
new 사람().걷다(); // 사람 a사람 = new 사람();
System.out.println(new 사람().a왼팔.길이 + "cm");
// 출력 : 100cm
}
}
class 사람 {
팔 a왼팔;
void 걷다() {
System.out.println("사람 걷는다.");
}
사람(){
a왼팔 = new 팔();
a왼팔.길이=100;
}
}
class 팔{
int 길이;
}