gpt4 book ai didi

c - 为什么数组的元素比类型大?

转载 作者:行者123 更新时间:2023-12-02 05:33:15 29 4
gpt4 key购买 nike

我对 C 还很陌生,在我的一次练习中,我遇到了一些我无法理解的事情。当我检查 tabel 的一个元素(这里是 'b')的大小时,我得到的是 4。但是,如果我检查 'char',我得到的是 1。怎么会这样?

# include <stdio.h>

int main(){
char tabel[10] = {'b','f','r','o','a','u','v','t','o'};
int size_tabel = (sizeof(tabel));
int size_char = (sizeof('b'));
/*edit the above line to sizeof(char) to get 1 instead of 4*/
int length_tabel = size_tabel/size_char;
printf("size_tabel = %i, size_char = %i, lengte_tabel= %i",size_tabel,
size_char,length_tabel);
}

最佳答案

'b' 不是 char 类型。 'b' 是一个文字,它的类型是 int。

来自 C11 标准草案 (ISO/IEC 9899:201x):6.4.4.4 字符常量:说明

An integer character constant is a sequence of one or more multibyte characters enclosed in single-quotes, as in 'x'.

关于c - 为什么数组的元素比类型大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24757119/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com