まとまった文章ではない愚痴とかはTwitterでフォロー!



Google+

2014年1月26日日曜日

【C言語】今日のc言語、「sizeof」演算子の意味が分からない

配列関数のところで詰まっているのですが、sizeof演算子の考え方がよくわからない。
コメントの部分の意味がよくわからないんですよね、分かるまで考えるか、分からぬままスキップするか、どっちが効率的なんだろうか・・・
int main(void)
{
    int array1[] = {42,79,13,19,78};
    int array2[2] = {1,1};
    int i,sz;
    sz = sizeof(array2); //なんでこれが36?
    printf("%d\n",sz);
    sz = sizeof(array2[0]); //なんでこれが4?
    printf("%d\n",sz);
    
    for (i=0 ; i < sizeof(array2) / sizeof(array2[0]);i++) {
        printf("array2[%d] = %d\n",i,array2[i]);
    }
    
    memcpy(array2,array1,sizeof(array1)); /* array1 の 全要素をarray2 にコピー */
    
    for (i =0; i < sizeof(array2) / sizeof(array2[0]);i++){
        printf("array2[%d] = %d\n", i,array2[i]);
        
    }
                                           
    
    return 0;
}




0 件のコメント:

コメントを投稿