Development/C, C++(556)
-
strcmp( ) & strncmp( ) – 문자열을 비교
strcmp()함수와 strncmp()함수 – 문자열을 비교 헤더파일string.hstrcmp( )첫 번째 인자의 문자열과 두 번째 인자의 문자열을 비교strncmp( )첫 번째 인자의 문자열과 두 번째 인자의 문자열을 비교 세 번째 인자는 비교해야 할 크기 비교 결과 반환값설명양수(0보다 큰 값)array1의 문자열이 array2의 문자열보다 크다0array1의 문자열이 array2의 문자열과 같다음수(0보다 작은 값)array1의 문자열이 array2의 문자열보다 작다 함수원형 함수의 원형예제설명#include int strcmp (const char* s1, const char* s2)#include char array1[10] = "ABCE"; char array2[10] = "OPQR"; str..
-
포인터 변수 선언
포인터 변수의 선언 int* pointer = NULL; 자료형int*포인터 변수의 자료형 지정 자료형 다음에 * 연산자를 붙임포인터 변수 이름pointer주소를 저장할 변수의 이름 지정NULL 포인터 설정NULL포인터 변수 선언 시 NULL로 초기화 포인터 변수 선언 예 int* p1=NULL; // int형 주소를 저장하는 포인터 변수 char* p2=NULL; // char형 주소를 저장하는 포인터 변수 double* p3=NULL; // double형 주소를 저장하는 포인터 변수 포인터 변수 선언 (동일 표현)포인터 정의시 *기호를 데이터형에 붙이든 변수형에 붙이든 동일한 포인터 변수의 선언이 됩니다. int* pointer; == int *pointer 잘못 사용된 포인터 포인터 변수에 주소를 ..
-
Ex20-포인터 변수를 통해 1차원 배열 요소들의 주소에 접근하기
포인터 변수를 통해 1차원 배열 요소들의 주소에 접근하기 메모리 구조도 소스코드 #include int main(void) { int array[3]={10, 20, 30}; int* p=NULL; p=array; // p=&array[0]; 포인터 변수에 배열의 시작 주소를 저장 printf("%x %x %x \n", p, p+0, &p[0]); // 배열의 0번 요소의 주소 printf("%x %x \n", p+1, &p[1]); // 배열의 1번 요소의 주소 printf("%x %x \n", p+2, &p[2]); // 배열의 2번 요소의 주소 return 0; } 출력결과
-
Ex19-*(array + i) == *&array[i] == array[i]
*(array + i) == *&array[i] == array[i]는 값을 나타내는 같은 표현 확인 복습 소스코드 #include int main(void) { int array[3]={10, 20, 30}; // * 연산자를 붙임 printf("%d %d %d \n", *(array+0), *&array[0], array[0]); // 배열의 0번 요소에 저장된 값 printf("%d %d %d \n", *(array+1), *&array[1], array[1]); // 배열의 1번 요소에 저장된 값 printf("%d %d %d \n", *(array+2), *&array[2], array[2]); // 배열의 1번 요소에 저장된 값 // 결론: *(array + i) == *&array[i] ==..
-
Warning-incompatible implicit declaration of built-in function 'malloc'
경고메시지 incompatible implicit declaration of built-in function 'malloc' 발생 원인 필요한 header file을 include 하지 않은 경우 발생 해결방법 #include 를 추가
-
Ex18-배열 이름으로 주소표현하는 다양한 방법
Ex17.c코드에서 *연산자만 붙인 것으로 배열 이름으로 주소표현하는 다양한 방법을 확인할 수 있습니다. 복습 소스코드 #include int main(void) { int array[3]={10, 20, 30}; // * 연산자를 붙임 printf("%d %d %d \n", *array, * (array+0), *&array[0]); // 배열의 0번 요소에 저장된 값 printf("%d %d \n", *(array+1), *&array[1]); // 배열의 1번 요소에 저장된 값 printf("%d %d \n", *(array+2), *&array[2]); // 배열의 2번 요소에 저장된 값 printf("%d %d %d \n", sizeof(*array), sizeof(*(array+0)), siz..