목록개발 공부/C (47)
EASY7
배열명은 배열의 첫번째 요소의 주소값을 지정 #include void main() { int arr[5]={1,2,3,4,5}; int *p=arr; 첫번째 요소의 주소가 p에 저장 *p는 1이 됨. int i; for (i=0; i
%d 10진수의 정수형 %f 실수형 float a=7; printf("%f\n", a); 하면 7.000000 소수점자리까지 표시해줌 %e 지수형, 변수값을 Ae+00B 꼴로 나오며 A에 10^B승한 값과 동일 %o 8진수 %x 16진수 %u unsinged int형으로 부호없는 10진수 %g 실수형 자동출력 %p 포인터 주소 %c 하나의 문자로 출력 %s 문자열 string http://blog.naver.com/mcm1092/220158222517 출처
포인터에서 연산작업 덧셈 뺄셈하기 #include void main() { char c='A'; int i=5; char *p_c=&c; int *p_i=&i; printf("c 결과값 %c p_c포인터 정보 %c \n", c,(*p_c)++); B A printf("i 결과값 %c p_i포인터 정보 %c \n", i, *p_i+=1); 6 6 *p_i를 6으로 저장하고 6 6 출력 printf("%c \n", *p_c+1); C } ++ -- 은 오른쪽에서 왼쪽방향으로 계산을 한다. 괄호 유무는 아주 중요하다. (*p)++ , ++*p는 현재 포인터값을 가져와서 그 값 자체를 조각함. *p++는 p의 주소값 3075908이 다음 요소값 3075912를 가리키며 그 주소가 가리키는 내용을 지칭 *(p+2..
이중포인터 : 포인터에 대한 포인터 주로 함수에서 처리된 결과를 다시 반환하고자 할 경우, 동적메모리 할당 시 사용 자료형 **변수명; #include void main() { int a=5, b=10; int *p_1, **p_2; printf("a의 주소 %d \n" ,&a);3078924 printf("p_1의 포인터 결과 %d \n", *p_1); 5 printf("p_2의 결과 %d\n" **p_2); 5 } 이중포인터는 M자형 그냥 포인터는 N자형이구나 #include void main() { int a=5, b=4700; char *c=&a, *d=&b; printf("c포인터 결과 %d\n", *c); printf("d포인터 결과 %d\n", *d); printf("b의 주소 %d \n d..
C만의 특징 포인터를 드디어 배웁니다. 포인터는 왜 사용하는 것일까? 포인터를 이용하면 직접 메모리에 접근이 가능해지고 원하는 곳에 접근하여 조작이 가능하다. 그래서 포인터는 CPU에서 메모리에 데이터를 저장할 때 어느 주소에 둬야할지를 결정하는 것이다. 메모리의 주소값을 저장하기 위한 변수 * : 간접 연산자 *p : 포인터 변수 p p : 일반 변수 p 선언 : 자료형 *변수명; 또는 자료형* 변수명; 12번지에 들어가는 값은 누군가의 주소가 된다. 하지만 printf("%d",*p_2);하면 4가 출력되는 것이 아니다. 포인터이기 때문에 4번지가 가리키는 값이 뭐니? 라는 뜻이다. printf("%d",p_2);하면 4가 출력되나? 주석 달 때 여러줄 한줄 차이 있던데 왜 그냥 /*로 쓰는 거지? ..
Int strcmp(char *str1, char *str2) 두 문자배열이 같은가? 다른가? string compare의 약자이다. 넘겨받은 두 문자열을 비교하여 같으면 0 리턴 0이아니면 다르다는 것인데 str1
[1] gets() 엔터 치기 전 문자열들을 모두 읽고 마지막 엔터키는 버리고 '\0'문자를 추가하여 호출한 프로그램에 문자열 전달 #include void main() { char sample[50]; printf("문자열을 입력하세요\n"); gets(sample); printf("당신이 입력한 문자열 : %s", sample); } 최대 50개 문자열을 받는 sample에 글자를 넣음 sample은 '행'자의 주소를 기억함. 행자로 가서 null까지 쭉 읽음. [2] scanf() 숫자, 문자열 받을 수 있다 스페이스, 엔터, 탭 키가 나올 때까지 입력한 문자열 받음. #include void main() { char sample[50]; printf("문자열을 입력하세요\n"); scanf("%s..
문자배열(=문자열) 우리가 알고 있는 문자열(char)데이터는 그 자체가 배열이다. char타입은 1차원 배열을 의미 char sample[5]; char sample[]="hello"; char sample[]={'h','e','l','l','o','\0'}; h e l l o \0 5개 요소로 이루어진 배열이고 index는 0~4 \0은 null문자로 문자열이 끝났음을 의미 컴파일러가 자동으로 문자열뒤에 null 붙여줌. #include void main() { char arr[]="hello"; printf("%s", arr); } hello라고 뜸!! arr은 처음 문자열의 주소를 기억한다. 그럼 h가 있는 곳으로 가서 null을 만날 때까지 읽는다. strlen(char *string)함수 문자..