프로그래밍/C언어 5

[c언어] 구조체 선언 과 초기화

배열과 구조체 배열 : 같은 자료형의 데이터를 일렬로 모아둔 자료구조 형태 구조체 : 다른 자료형일 지라도 논리적으로 연결되는 데이터들을 모아둔 자료구조 형태 구조체의 선언 tagname 이라는 구조체가 만들어 졌다. (구조체의 형태만이 만들어 졌다. 메모리 공간을 차지 하지 않는다.) tagName 구조체형을 갖는 변수 ABC가 선언되었다. 이떄 구조체기억 장소를 할당하게 된다. 구조체를 선언할 때 반드시 struct 기워드를 붙여준다. 3. 위와 같이 구조체 를 정의함과 동시에 변수를 선언할 수 도있다. 이떄 만들어진 ABC는 전역 변수가 된다.

[C++, C] 문자열

C언어에서의 문자열 아래 둘은 같은 표현 char intro[10] = "introduce"; char intro[10] = { 'i', 'n', 't', 'r' , 'o', 'd', 'u', 'c', 'e', '\0' }; char *intro = "introduce"; 문자열은 배열이다. 문자열 뒤에는 널문자가 더해진다. 따라서 문자열의 길이를 알려면 널문자를 빼면 된다. 문자열은 그 문자열의 시작되는 주소를 가르킨다. (배열로 생각하면 된다.) -->ex) arr는 &arr[0]으로 첫번째 주소 및 배열의 주소가 된다. 배열로 선언한 ptr3만 주소가 다르다. ptr은 주소이자 문자열이다. 배열 형태로 초기화 할 경우 문자가 바뀐다. 포인터 (ptr1)로 초기화 할 경우 오류가 난다. 그 원소의 값..

[C언어]위키백과 연산자

https://ko.wikipedia.org/wiki/C%EC%99%80_C%2B%2B%EC%9D%98_%EC%97%B0%EC%82%B0%EC%9E%90 C와 C++의 연산자 - 위키백과, 우리 모두의 백과사전 이것은 C와 C++ 프로그래밍 언어의 연산자의 목록이다. 나열된 모든 연산자는 C++에 존재한다. 네번째 열("C에 포함됨")은 해당 연산자가 C에 존재하는지를 표시한다. C는 연산자 오버로딩을 지원하 ko.wikipedia.org 참고 C와 C++의 연산자 - 위키백과, 우리 모두의 백과사전 이것은 C와 C++ 프로그래밍 언어의 연산자의 목록이다. 나열된 모든 연산자는 C++에 존재한다. 네번째 열("C에 포함됨")은 해당 연산자가 C에 존재하는지를 표시한다. C는 연산자 오버로딩을 지원하 ko..

[C언어]포인터 상수와 상수 포인터(const int* 와 int* const)

int *ptr ( ptr은 + 가르킨다(*) +int형을 ) ptr은 int형의 무언가를 가르킴 (주소를 저장하여 가르킴) ptr이 가르키는건 int형 무언가 int const *ptr (ptr은 + 가르킨다(*) + int const 형을) =const int *ptr ptr은 const int형의 무언가를 가르킴 ptr이 가르키는건 const int형 무언가 (ptr이 가르키는 건 변할 수 없음) int *const ptr (const ptr은 + 가르킨다(*) + int 형을) const ptr(변하지 않는 값을 가진 ptr)은 int형의 무언가를 가르킴 const ptr이 가르키는건 int형 무언가 (ptr의 값 즉, 저장된 주소값을 변하게 할 수 없음.) int a = 10; int b; co..

[C언어]typedef와 구조체

typedef int main() { typedef int int32; } typedef 는 기존의자료형(int) 에다가 별명 (int32)을 붙여주는것이다. int와 int32랑은 같은의미를 말한다. - 예시 - typedef int pair[2]; pair point = { 3,4 }; pair은 2개짜리 인트형 배열을 의미한다. int point[2] = { 3,4 }와 같은 의미이다. typedef를 사용하여 문자열 담기 char* name = "hello"; char name[] = "hello"; typedef char* String; String name = "hello"; char형 포인터에 새로운 이름(String)을 만들어 준다. 즉, 자료형에 특별한 의미가 부여될떄 typedef를 쓴..