산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C언어 strlen() vs sizeof(): 차이점 이해와 올바른 사용법

strlen()이란?

C언어에서 strlen()은 널 종료 문자 '\0'을 제외한 널 종료 문자열의 문자 수를 반환합니다. 알파벳, 숫자, 기호, 공백 모두 셉니다.

이 글에서는 strlen(), sizeof()의 역할과 이들이 다르게 동작하는 이유를 설명합니다.

sizeof()란?

sizeof 연산자는 피연산자의 크기를 바이트 단위로 산출합니다. 정적 타입의 경우 컴파일 타임에, 가변 길이 배열의 경우 런타임에 평가됩니다. 프리미티브, 포인터, 구조체, 공용체 등 모든 C 데이터 타입에 적용 가능합니다. 결과 타입은 size_t로, 가장 큰 객체의 크기를 담을 수 있는 부호 없는 정수 타입입니다.

int나 double 같은 타입의 크기가 32비트와 64비트 시스템 간에 다를 수 있으므로, sizeof는 이식성을 보장합니다.

핵심 차이점

strlen() 문법

size_t length = strlen(my_string);

여기서 my_string은 문자 배열이거나 널 종료 문자열을 가리키는 포인터입니다.

strlen() 예제

#include <stdio.h>
#include <string.h>
int main() {
    char strng[] = "January";
    printf("주어진 문자열의 길이: %zu\n", strlen(strng));
    return 0;
}

출력:

주어진 문자열의 길이: 7

sizeof() 문법

1) sizeof(type)

sizeof(type)은 지정된 타입의 크기를 산출합니다.

#include <stdio.h>
#define my_sizeof(type) ((char*)(&type+1) - (char*)&type)
int main() {
    double x;
    printf("%zu", my_sizeof(x));
    return 0;
}

출력:

8

2) sizeof(variable)

변수 이름을 전달해 메모리 풋프린트를 얻습니다.

#include <stdio.h>
int main() {
    printf("sizeof(char) = %zu\n", sizeof(char));
    return 0;
}

출력:

sizeof(char) = 1

3) sizeof(expression)

표현식의 타입 크기를 값 계산 없이 평가합니다.

#include <stdio.h>
int main() {
    char p = 'S';
    double q = 4.65;
    printf("변수 p의 크기: %zu\n", sizeof(p));
    printf("표현식의 크기: %zu\n", sizeof(p+q));
    int a = (int)(p+q);
    printf("명시적 변환된 표현식의 크기: %zu\n", sizeof(a));
    return 0;
}

출력:

변수 p의 크기: 1
표현식의 크기: 8
명시적 변환된 표현식의 크기: 4

시각적 비교

C언어 strlen() vs sizeof(): 차이점 이해와 올바른 사용법

아래는 두 구문의 측면 비교 요약입니다.

특징 strlen() sizeof()
헤더 파일 string.h 헤더 불필요 (내장 연산자)
목적 문자열 길이 계산 (널 제외) 타입 또는 변수의 메모리 크기 결정
반환 타입 size_t size_t
평가 시점 런타임 (문자열 순회 가능) 컴파일 타임 (VLA 제외)
적용 대상 문자 배열 또는 널 종료 문자열 포인터만 모든 데이터 타입과 표현식

언제 무엇을 사용할까?

이 가이드라인을 준수하면 효율적이고 이식 가능하며 유지보수하기 좋은 C 코드를 작성할 수 있습니다.

C 언어

  1. 석면 vs 유리 섬유: 주요 차이점, 용도 및 안전성 고려사항
  2. C 구조체 vs 공용체: 실전 가이드
  3. C# vs C++: 기능, 성능, 용도 비교 분석
  4. C vs C++: 핵심 차이점 & 선택 가이드
  5. C vs Java: 기능, 역사, 용도의 종합 비교
  6. 파이썬 vs 자바스크립트: 주요 차이점, 특징 및 선택 가이드
  7. 파이썬 vs 루비: 기능, 장점, 사용 사례 종합 비교
  8. DC 모터 vs AC 모터: 핵심 차이점과 구매 가이드
  9. 브레이징 vs 납땜: 핵심 차이점 완벽 설명
  10. 2행정 vs 4행정 엔진: 핵심 차이점과 장단점 완벽 비교