배열은 상수 포인터 이다 .
배열이 지정하는 주소는 한번 정해지면 변하지 않는다.
char fname[20];
fname = "strubg";
"strubg" 는 새로운 strubg 가담겨있는 새로운 주소를 나타냄으로
위 에서 처럼 변수 선언 후 string 을 넣을 수 없다.
배열과 다차원 배열 매개 변수 이용하기
#include<stdio.h>
void printGameTitle(char title[]);
void printGameMenu(char menu[][10]);
void printGameTItle(char title[])
{
printf(" sizeof(title) : %d\n", sizeof(title));
printf("%s\n", title);
}
void printGameTitle(char title[])
{
}
void printGameMenu(char menu[][10])
{
int i=1;
printf(" sizeof(menu) : %d\n", sizeof(menu)); //주소 사이즈를 출력 주소는 항상 4byte
printf(" sizeof(menu[i]) : %d\n", sizeof(menu[i])); // char[10] 의 size 출력
printf(" sizeof(*menu) : %d\n", sizeof(*menu)); // char[10] 의 size 출력
printf(" sizeof(*menu+i) : %d\n", sizeof(*(menu+i))); // menu[i] 과 동일
printf(" *(menu + i) : %s\n", *(menu + i));
printf(" menu[i] : %s\n", menu[i]);
}
int main()
{
char menu[][10] = { "New Game","Load Game","2 Play","Option","Exit" };
char title[] = "== TEST GAME==";
printGameTItle(title);
printGameMenu(menu);
return 0;
}
gets(),puts()
#include<stdio.h>
int main()
{
//get() : 문자열 입력 받는 함수 \n 까지의 문자열을 입력 받고 \n->\0 로 교채해준다.
char str[14];
gets(str);
// puts() 문자열을 화면에 출력
puts(str);
return 0;
}
strlen(),strcpy()
#include<stdio.h>
int main()
{
// strlen() 문자열 길이 계산 주소가 가리키는 값에서 null(\0)를 만날 때까지 길이 출력
char* str = "love";
printf("%d\n",strlen(str));
char name[20] = "jin won";
char copy[20] = { 0, }; // 초기 화 할때 , 뒤에 아무것도 쓰지 않으면 0 으로 초기화한다.
strcpy(copy, name);
printf("%s, %s \n",name, copy);
return 0;
}
strcat() & strcmp()
strcat() :첫 번째 문자열에 두번째 문자열 붙이는 함수
strcmp(): 문자열 두개 동일한지 비교 동일하면 0 아니면 다른 숫자
#include<stdio.h>
int main()
{
char fname[40] = "kin";
char lname[20] = "jin";
strcat(fname, lname);
printf("%s \n", fname);
char* test1 = "ab";
char* test2 = "ab";
printf("%d", strcmp(test1, test2));
}
'공부,일 > c언어' 카테고리의 다른 글
sizeof 와 포인터 & 배열의 data type (0) | 2021.06.01 |
---|---|
void pointer , malloc (0) | 2021.06.01 |
Code 영역 (0) | 2021.05.31 |
포인터 2 메모리 직접 다루기 (0) | 2021.05.26 |
포인터 (0) | 2021.05.24 |
댓글