——黑马程序员——C语言基础--sizeof运算符和strlen 函数的区别总结

来源:互联网 发布:tv远程控制软件 编辑:程序博客网 时间:2024/06/05 06:11
-----------android培训java培训、java学习型技术博客、期待与您交流!-----------

C语言基础--sizeof运算符和strlen 函数的区别总结

一、sizeof 

定义:不是函数,是一种单目运算符, 
作用:是计算操作数的类型在内存中占用的字节数,以字节为单位。操作数可以是表达式、常量、变量、表达式
格式:sizeof(常量、变量或表达式)

1、sizeof运算符计算常量和变量在内存中所占字节数

(1)计算常量 int 类型
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) {     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    int a = 2;    printf("所占字节数为:%d\n",sizeof(a));    [pool drain];    return 0;}

(2)计算float类型
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) {     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    float a = 2.3f;    printf("所占字节数为:%d\n",sizeof(a));    [pool drain];    return 0;}

(3)计算double类型
{     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    double a = 2.34;    printf("所占字节数为:%d\n",sizeof(a));    [pool drain];    return 0;}

(4)计算字符char类型的变量以ASCII码存储占一个字节
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) {     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    char a = 'H';    printf("所占字节数为:%d\n",sizeof(a));    [pool drain];    return 0;}

(5)计算字符char类型的常量以int类型存储占四个字节
#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) {     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    printf("所占字节数为:%d\n",sizeof('a'));    [pool drain];    return 0;}

2、sizeof运算符计算某一数据类型在内存中占用的字节数

#import <Foundation/Foundation.h>int main (int argc, const char *argv[]) {     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];                                //sizeof运算符的测试    //int类型数据所占字节数    printf("  int  类型所占字节数为:%d\n",sizeof(int));    //float类型数据所占字节数    printf("float  类型所占字节数为:%d\n",sizeof(float));    //double类型数据所占字节数    printf("double 类型所占字节数为:%d\n",sizeof(double));    //char类型数据所占字节数    printf("  char 类型所占字节数为:%d\n",sizeof(char));    [pool drain];    return 0;}

#include <stdio.h>#include <stdlib.h>int main(){int a[10] = {0};    printf("%ld\n",sizeof(a[10]));system("pause");return 0;}


二、strlen ( )函数

定义:是C语言标准库函数中提供的专门计算字符串长度的函数
作用:计算字符串在内存中占用的长度,遇到 '\0' 就认为字符串结束函数返回值是字符串中的实际长度(不包含 '\0' 在内)
格式:strlen (字符数组 ); 只能计算字符数组的长度,其他类型会报错
#include <stdio.h>#include <stdlib.h>int main(){//定义一个字符数组char str[] = "abcdefg";    //打印出字符数组长度    printf("字符串长度为:%ld\n",strlen(str));system("pause");return 0;}


1 0