[C 언어] 수조명이 함수에 전달되고 수조의sizeof가 4가 되는 이유

2779 단어 sizeof
C 언어에서 수조 이름이 매개 변수로 함수에 전달될 때 바늘로 퇴화하고sizeof가 바늘에 대한 조작 결과는 4이어야 한다.예는 다음과 같습니다.
#include<iostream>
using namespace std;

void Swap_arr(char* charArr){
    int len = sizeof(charArr);
    cout << "len =" << len << endl;    //  len =4
}

int main(){
    char charArr[] = "abcdefgh";
    Swap_arr(charArr);
    return 1;
}

그래서 함수에서 만약 수조의 큰 시간이 필요하다면, 우리는 하나의 매개 변수의 수조 이름, 다른 수조의 크기를 필요로 한다.다음과 같습니다.
#include<iostream>
using namespace std;

void test_arr(char* charArr, int len){
    cout << "len =" << len << endl;    //  :len =8
}

int main(){
    char charArr[] = "abcdefgh";
    int len = sizeof(charArr) / sizeof(charArr[0]) - 1;
    test_arr(charArr,len);
    return 1;
}

좋은 웹페이지 즐겨찾기