구조체는 구조체 변수를 초기화할 수 있다? 구조체 변수는 일반 변수처럼 초기화를 할 수 있습니다. 단, 초기화를 할때는 반드시 중괄호로 묶습니다. 예를들어 한번 알아보도록 할게요 전 포스팅에서 다룬 내용처름 일단 코딩을 해 보았습니다. 그러니 이렇게 출력이 되네요 이번에는 구조체의 변수를 초기화 해보겠습니다. 아주 잘~출력이 되네요 이처럼 구조체 변수는 초기화가 가능하다는 것을 알 수 있습니다. 구조체는 구조체 변수를 복사할 수 있다? 구조체 변수는 서로 복사가 가능합니다. 그치만 안되는 것이 있습니다. -->덧셈, 뺄셈, 곱셈, 나눗셈 과 같은 연산들은 불가능 합니다. ONLY 대입만 가능! 구조체는 중첩으로 사용할 수 있습니다.이를 바로 중첩 구조체 라고 합니다.중첩 구조체는 구조체 내에 또 다른 구..
구조체란?하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형->쉽게 생각해서 그룹 이라고 생각하면 됩니다. 구조체의 특징은?같은 자료형이건 다른 자료형이건 모두 그룹화할 수 있습니다. 구조체 정의와 변수 선언을 동시에 하는 방법 struct point { int x; int y; } p1, p2, p3; 구조체 키워드 : struct -> 구조체의 시작을 알리는 키워드구조체 이름 : point -> 구조체를 구분하는 이름구조체 멤버변수 : p1, p2, p3 -> point구조체의 그룹원 인 p1, p2, p3의 구조체 변수 [struct를 제외한 다른건 다 변경이 가능합니다.] 구조체의 멤버변수에 접근하는 방법구조체변수.멤버변수 예제를 통해서 자세히 알아보도록 하겠습니다. [예제] 순서 ① grou..
배열이란 무엇일까? 일단 배열은 1차원배열, 2차원배열, 다차원배열 이 있습니다.전 시간에 함수이름은 -> 함수의 시작주소 라고 정의를 내렸습니다. 배열도 마찬가지에요배열이른은 -> 배열의 시작주소 입니다. 배열에 대한 간단한 예제를 통해 알아보도록 하겠습니다. [예제] 이 예제에서 알 수 있듯이 출력을 할때 array와 array+0은 가르키는 주소는 같습니다. 하지만 배열의 크기는 다릅니다. array는 배열의 시작주소인 12Byte이고 array+0은 4바이트 이다. 1차원 배열에서는 *(array+i) == *&array[i] == array[i]는 값을 표현하는 내용이다? 위에서 말했듯이 배열이름은 배열의 시작 주소라고 했습니다.일단 array[i] 요것은 array의 i번째 값을 출력해 준다는..
함수란 무엇인가?우리는 main()함수, printf()함수, scanf()함수 등 다양한 함수를 사용하고 있습니다.각 함수마다 이름이 있는데요 이 이름들이 바로 함수의 시작 주소 입니다.main()함수의 이름은 main함수 이런식으로요 그럼 포인터 함수는 무엇인가요? 이전 시간에 포인터는 주소를 저장하는 것 이라고 정의를 내렸습니다.또한 포인터 변수는 어떠한 변수의 주소를 참조하는 것 이라고 정의로 내렸습니다. 그럼 포인터 함수는 위와 같은 개념을들 생각하면 아주 쉽게 생각할 수 있습니다.바로 함수의 시작주소를 저장하는 변수 입니다. 포인터 함수의 사용방법 int (*pointer) (int, int) int : 자료형[이 함수가 어떤 형태로 나타내어 질건지 선택하는 자료형](*pointer) : 포인..
이번 포스팅을 마지막으로 포인터에 대한 기본적인 기초 개념에 대해 마무리하겠습니다. 위와 같이 입력을 해 줍니다. 여러분도 해보시면 아시겠지만 Build하면 에러가 없다고 뜰 것 입니다. 근데 실행을 시켜보면 이렇게 Debug Error 라는 에러창이 뜰거에요 이렇게 뜨는 이유는 바로int형 변수 a, b, c 에대가 값을 초기화 해주지 않아서! 왜 초기화를 안해주면 이러한 문제가 생기는건가요? 앞에서도 말했따 싶이 포인터 변수를 사용한다는 것은 그 주소를 참조한다는 것 입니다.포인터가 주소를 참조 할때 그 주소가 가지고 있는 변수가 메모리의 공간이 존재하지 않는다면 포인터 변수는 참조를 못합니다. 따라서 위와같이 에러가 나는 것 입니다. 그래서 밑에와 같이 0으로 초기화를 해줍니다. 이제 디버그 에러는..
TIP : char* cp = NULLcp=&c라고 안쓰고char* cp = &c 라고 써도 된다. [해석]순서 ① char형 변수 c에다가 A라는 문자를 저장해 줍니다. 순서 ② char형 포인터 변수 cp에다가 NULL값을 저장해 줍니다. 순서 ③ 포인터 변수 cp에다가 char형 변수c의 주소를 저장합니다.[포인터 변수는 주소값을 참조하니까] 보시는 바와 같이 첫번째 줄에는 char형 변수 c와 c에 저장된 문자 A를 출력해 줍니다.두번째 줄에는 char형 변수 c의 주소를 참조한 char형 포인터 변수 cp의 주소와 cp가 참조한 주소를 출력해 줍니다. 결과적으로 포인터 변수 cp와 일반 변수 c의 주소는 다른것을 볼 수 있습니다.근데 &cp라고 안쓰고 cp라고 쓰면 cp가 참조한 주소를 출력해 ..
기말고사 대비로 C언어에 대해 오랜만에 포스팅해보내요중간에 빼먹은 내용은 추후에 다시 포스팅 하도록 하겠습니다.이번 포스팅은 포인란 무엇인가? 에 대해 아주 자세하게 설명하도록 하겠습니다. 포인터가 무엇인지 알아보기 전 간단하게 우리 실생활에서 포인터와 비슷한 예를 하나 들도록 할게요 철수는 인터넷 쇼핑으로 멋진 운동화를 하나 샀습니다. 운동화를 받으려고 택배 아저씨에게 집 주소를 전달합니다. 택배 아저씨는 철수네 집 주소를 전달받고서 이 주소를 찾아 철수에게 운동화를 전달하였습니다.그런데 철수는 운동화가 맘에 들지 않았습니다. 운동화를 반품하려고 철수는 택배 아저씨께 반품할 주소를 전달합니다. 택배 아저씨는 반품할 주소로 찾아갑니다. 철수의 요구사항(주소)대로 반품을 환료한 택배 아저씨는 또 다른 고객..
태그-> 자바빈 객체가 저장될 영역 이때 등장한 scope(영역)즉, 이것은 자바빈 객체가 저장될 영역을 뜻한다. 태그를 사용하게 되면 자바빈 클래스가 지정한 Bean이름으로 객체가 생성->이 생성된 객체는 scope에 지정된 곳으로 생성이 된다. 자바빈의 scope(영역) 영역 설명 page 현재 페이지의 범위에만 한정된다 페이지가 변경되면 유지되지 않는 scope request request요청을 받고 처리를 완료할 때까지 생존되는 scope이다. session 클라이언트(사용자) 당 하나씩 할당되는 영역, 클라이언트가 브라우저를 종료하기 전까지 유지되는 scope application 사이트 전체 범위를 가진다. 서버가 종료되기 전에는 계속 유지되는 scope-> 학원 게시판을 떠올리자! 만약 sc..