일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 누산기
- H-bridge
- TMS320F28335PGFA
- 주소버스
- 포인터
- 킬로바이트
- 문자열과 포인터
- serial통신
- cisc
- 제어버스
- vfd
- LSB
- 조건 연산자
- C언어
- 프로그램 카운터
- 프로세서 기능
- Call-By-Value
- latch
- OPAMP
- 오실레이터
- risc
- Call-By-Reference
- 래치
- 메모리
- MAX232
- 데이터 버스
- 절대값
- Visual Studio 2008
- 메가바이트
- 파이프 라인(pipeline)
- Today
- Total
Fortune Smiles On Me
문자열 배열과 문자열을 참조하는 포인터 본문
c언어에서 문자열을 표현하는 방식에는 크게 두가지가 있다.
첫번째는 배열을 이용해서 변수형태로 표현하는 방식.
두번째는 포인터를 이용해서 상수형태로 표현하는 방식. 두가지가 있다.
1. 배열을 이용한 문자열 저장.
char arr[10] = "naminyoub";
다음과 같이 배열을 선언하면서 문자열로 초기화 하면 문자열이 배열에 저장된다.
여기서 중요한것은 단순히 char배열을 통해서 문자열이 표현된다는 것이다.
문자열이 다른 어딘가에 저장되는것이 아니라 배열에 저장되는것.!
2. 포인터를 이용해서 상수형태의 문자열을 참조.
char *cStr = "String Constant";
다음과 같이 선언하면 문자열은 어디에 저장될까??
답은...........
배열로 표현되지 않은 문자열은 상수의 형태로 메모리 공간에 저장된다. 즉, 배열로 표현되지 않은 문자열은 메모리 공간에 자동으로 저장된다. 단 상수의 형태로 저장된다. 그리고 나서 문자열의 시작주소, 즉 첫 번째 문자가 저장된 주소의 값이 반환된다.
ex) 0x0001번지를 시작으로 저장이 되면.. 위 문장은
--> char *cStr = 0x0001 과 같은 형태가 된다.
#include <stdio.h>
int main(void)
{
char *str1 = "Computer system"; //문자열의 주소값을 char형 포인터 변수에 저장.
char *str2 = "Operating system"; //문자열의 주소값을 char형 포인터 변수에 저장.
char *fmtStr = "%s\n%s\n"; //문자열의 주소값을 char형 포인터 변수에 저장.
printf("%s\n", str1);
printf("%s\n", str2);
printf(fmtStr, str1, str2);
return 0;
}
'Embedded > Embedded Software' 카테고리의 다른 글
마운트란 (0) | 2014.05.20 |
---|---|
#pragma (0) | 2012.12.30 |
포인터 문자열 사용하기. (0) | 2012.10.12 |
포인터변수 (0) | 2012.10.03 |
&연산을 통해 얻은 주소 값. (0) | 2012.10.01 |