포인터 5

배열 포인터

배열 포인터란? 배열의 시작 주소값을 저장할 수 있는 포인터 3차원 배열의 구조 그냥 하나의 포인터일뿐..! int(*in)[2]; // in 이라는 2차원 배열을 2개씩 나누어서 만듦 int num[3] = {1, 2, 3}; in = num; printf("%d\n", in); // 100 printf("%d\n", num); // 100 printf("%d\n", *in); // 100 printf("%d\n", **in); // 1 printf("%d\n", *(*in+1); // 2 printf("%d\n", *(*in+2); // 3 printf("%d\n", *in[1]); // 3 int(*in)[4]; int num[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; in ..

C 2023.04.05

구조체, 포인터 이동

구조체란? 여러 변수들을 모아서, 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체 구조체 구성 struct 구조체명 { 멤버변수 1; 멤버변수 2; }; 구조체 정의 및 사용 struct person { char *name; int age; }; struct person user1; user1.name = "h user"; printf("%s", user1.name); struct person { char *name; int age; }test; test.name = "h user"; test.age = 40; printf("%s : %d", test.name, test.age); struct person { char *name; int age; }; struct person *p; p -> n..

C 2023.04.05

포인터 배열

포인터 배열 배열의 요소가 포인터(메모리주소)로 이루어진 것 일반 배열 char a[3] = {'a', 'b', 'c'}; printf("%s\n", a); // %s는 문자열을 출력하므로 abc 출력 char *str = "Hello"; printf("%s\n", str); // Hello 출력 포인터 배열 char *student[3] = {"aaa", "bbb", "ccc"}; // 포인터를 배열로 만들면 주소값이 들어감 #include int main(){ static char *c[] = {"aaa", "bbb", "ccc"}; printf("%s", *(c+1)); // 100+1 = 101 의 주소값이므로 bbb가 출력됨 } #include int main(){ char *array1[2] ..

C 2023.04.04

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