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

-----------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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值