배열 원소 개수 ,문자 원소 개수= sizeof(배열명) / sizeof(자료형);
문자 원소 개수 = strlen(배열명)
배열[인덱스] 의 길이 = count 변수와 for문을 이용하여 count 가 해당 인덱스 번호의 길이
배열 출력
1. 값: 변수[i] 주소: &변수[i]
2. 값: *(변수 +i) 주소: 변수+i
3. 값: *(포인터 변수 +i) 주소: 포인터 변수 +i
프로세스는 메모리에 적재되어 실행중인 프로그램 / 종료시 메모리에 소멸
포인터 - 실행중인 프로세스의 임의의 주소
포인터 변수- 값이 아닌 메모리 주소를 저장하는 변수
형식: 자료형 *변수;
포인터의 특징
1. 변수를 포인터 변수에 넣기 위해서는 변수가 아닌 변수의 주소를 할당해줘야 한다. (&)
2. 상수나 수식의 주소를 갖지 않는다.
3. 포인터 변수의 자료형은 참조할 데이터의 자료형과 같아야 한다.
4. 포인터 변수는 자료형과 관계없이 동일한 크기로 할당 됨. (운영체제에 따라 다름)
포인터 사용 시 주의 할 점
1. 포인터를 선언하고 주소를 대입하고 사용해야 한다.
2. 일반 변수는 간접참조 할 수 없다.
포인터 변수를 이용하여 문자 개별 출력
while ( *포인터 변수){
출력구문 : %c , *포인터 변수 ++ // 다음 주소로 이동 "\n" 이 나오면 종료
* 변수와 포인터 변수의 차이
변수는 값 : 변수 주소: &변수 , 직접 접근
포인터 변수는 값: *변수 주소: 변수 ( 주소를 사용하여 가리키는 곳의 내용 접근 ) , 간접 접근
* 문자열은 시작주소를 지정한다. 그렇기에 &를 쓰지 않는다. 값과 주소 또한 변수로 표현
call by value - 매개변수에 복사되지만 실 인수에 영향을 미치지 않고 소멸된다.
call by reference -매개변수에 복사되고 주소 값이 바뀌어 실 인수에 영향을 미친다.
배열을 함수의 인수로 전달할 경우 배열의 시작 주소만이 전달되기 때문에 반드시 포인터로 선언해야 된다.
*(포인터 변수 +i)
매개변수 전달 방법
1. 반환형 함수(자료형 *포인터 변수)
2. 반환형 함수(자료형 포인터변수[배열 크기])
3. 반환형 함수(자료형 포인터변수[])
포인터 배열
선언 :자료형 *배열이름[크기]
포인터 배열의 크기 : 크기*4
'C > 기본 문법 내용 정리' 카테고리의 다른 글
3장. 연산자 (0) | 2022.01.26 |
---|---|
2장. 변수와 데이터 입력 (0) | 2022.01.25 |
1장. 상수와 데이터 출력 (0) | 2022.01.25 |
c언어 기본 문법 정리 (0) | 2021.08.30 |
C언어 배열과 문자열 (0) | 2021.07.05 |