English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
م运营商 في لغة C، يحدد حجم التعبير أو عدد وحدات التخزين المحددة بناءً على حجم char. يحتوي م运营商 على معامل واحد، يمكن أن يكون تعبيرًا أو تحويلًا إلى نوع بيانات، ويتم التحويل باستخدام الأقواس المزدوجة حول نوع البيانات. يمكن أن يكون نوع البيانات غير الأساسي (مثل الأنواع الأساسية مثل الأعداد أو أنواع البيانات المحددة) أو أنواع البيانات المتعددة (مثل الوحدات والهياكل).
程序要知道原始数据类型的存储大小。尽管数据类型的存储大小是恒定的,但在不同的平台上实现时它会有所不同。例如,我们可以使用sizeof()运算符动态分配数组空间:
int *ptr=malloc(10*sizeof(int));
在上面的示例中,我们使用了sizeof()运算符,该运算符应用于int类型的转换。我们使用malloc()函数分配内存,并返回指向该已分配内存的指针。内存空间等于int数据类型占用的字节数并乘以10。
注意:输出在不同的机器上可能会有所不同,例如在32位操作系统上将显示不同的输出,在64位操作系统上将显示相同数据类型的不同输出。
sizeof()运算符的行为根据操作数的类型而有所不同。
操作数可以是一种数据类型
操作数可以是一个表达式
#includeint main() { int x=89; //变量声明 printf("变量x的大小是 %d", sizeof(x)); //显示x变量的大小 printf("\ninteger数据类型的大小为 %d",sizeof(int)); //显示整数数据类型的大小。 printf("\n字符数据类型的大小为 %d",sizeof(char)); //显示字符数据类型的大小 printf("\n浮动数据类型的大小为 %d",sizeof(float)); //显示浮动数据类型的大小。 return 0; }
在上面的代码中,我们借助sizeof()运算符来打印不同数据类型(如int,char,float )的الحجم.
نتيجة الإخراج
变量x的大小是 4 integer数据类型的大小为 4 字符数据类型的大小为 1 浮动数据类型的大小为 4
#includeint main() { double i=78.0; //变量初始化。 float j=6.78; //变量初始化。 printf("(i+j) 表达式的大小为 : %d",sizeof(i+j)); //显示表达式的大小(i + j)。 return 0; }
في الكود أعلاه، قمنا بإنشاء متغيرين من نوع double و float باسم i و j، ثم استخدمناsizeof(i + j)طباعة تعبيرات الميزةالحجم.
نتيجة الإخراج
حجم التعبير (i+j) هو: 8