初始c语言----sizeof与strlen
初始c语言----sizeof与strlen
sizeof
sizeof是c语言的一个关键字,同时也可以认为是一种操作符,单目操作符。它并不是函数!
sizeof(x),在编译时确定其值,计算的是x在内存中所占的字节。
一、sizeof(数值)
#include<stdio.h>
int main()
{
int i = 3;
printf("%d\n", sizeof(i));//4
char c = 8;
printf("%d\n", sizeof(c));//1
double d = 3.12;
printf("%d\n", sizeof(d));//8
float f = 3.14;
printf("%d\n", sizeof(f));//4
return 0;
}
int、float类型占4字节,char类型占1字节,double类型占8字节。
二、sizeof(数组)
#include<stdio.h>
int main()
{
char arr[] = "abcde";
int arr1[] = { 11,23,543,657,234 };
printf("%d\n", sizeof(arr));//6,双引号会在尾部自动添加转义字符'\0',所以一共是6
printf("%d\n", sizeof(arr1));//5(元素个数)*4(int类型占4个字节),20;
printf("%d\n", sizeof(arr) / sizeof(arr[0]));//6,找出数组中元素的数量!
return 0;
}
三、sizeof(指针)
#include<stdio.h>
int main()
{
char arr[] = "abcde";
char* p = arr;
printf("%d\n", sizeof(p));//4,指针是地址, 指向某数据空间, 地址常是4字节.
return 0;
}
strlen
需引用头文件:#include<string.h>
strlen ()是计算字符串长度的函数,将返回从字符串首到’0’之间总共的字符个数,不包括‘\0’
例如
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "abcde";
printf("%d\n", strlen(arr));//5
return 0;
}
strlen与sizeof的区别
strlen()是一个函数,需引用头文件#include<string.h>.计算时没有包括‘\0’.
sizeof()是一个关键字,也是操作运算符.计算时有包括‘\0’
例如
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "abcde";
printf("%d\n", sizeof(arr));//6
printf("%d\n", strlen(arr));//5
return 0;
}