strlen与sizeof区别

1.

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个‘\0‘,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到‘\0‘停止。

char aa[10];cout<<strlen(aa)<<endl; //结果是不定的

char aa[10]={‘\0‘}; cout<<strlen(aa)<<endl; //结果为0

char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3

char aa[5]="hello";cout<<strlen(aa)<<endl; //结果5

2.

sizeof()返回的是变量声明后所占的内存数,不是实际长度,

sizeof(aa) 返回10

int a[10]; sizeof(a) 返回40 (根据语言int型 c 是两个字节 c++是四个 java 是两个)

3.

sizeof是一个操作符,strlen是函数。

时间: 2024-10-12 03:28:28

strlen与sizeof区别的相关文章

【转载】strlen与sizeof区别

自己小结: sizeof使用时,若是数组变量,则是数组变量占的大小 char a[10]; sizeof(a)=10 若是指针,则为指针大小,数组变量作为函数参数传递时,会退化成指针,且函数内是不知道原数组大小的 char *s="abcdddddd"; sizeof(s) = 4 指针 void f(char a[]) {sizeof(a) = 4 指针} 下面转载自百度百科 ------------------------------------------------------

C++ sizeof操作符的用法和strlen函数的区别

摘要:本人首先介绍了C++中sizeof操作符的用法和注意事项,其次对比了和strlen的区别和使用,方便大家在写代码的时候查阅,和面试.笔试的时候复习. 目录: sizeof的用法: sizeof和strlen的区别: sizeof的用法: sizeof 是一种单目操作符,而不是函数.sizeof以字节形式给出操作数的存储空间. 操作数可以是一个表达式或在括号内的类型名.操作数的存储空间由操作数的类型决定. char str[]="hello"; char str1[100]; ch

说明sizeof和strlen之间的区别。

解析:由以下几个例子我们说明sizeof和strlen之间的区别.第1个例子: sizeof(ss)结果为4,ss是指向字符串常量的字符指针.sizeof(*ss)结果为1,*ss是第一个字符.第2个例子: sizeof(ss)结果为11,ss是数组,计算到"\0"位置,因此是(10+1).sizeof(*ss)结果为1,*ss是第一个字符.第3个例子: sizeof(ss)结果为100,ss表示在内存中预分配的大小,100×1.strlen(ss)结果为10,它的内部实现是用一个循环

C语言——strlen()和sizeof的区别

strlen()和sizeof()的区别: strlen()——>C字符串库函数,返回字符串的真实长度.它是从内存某位置开始扫描,直到碰到结束符'\0'停止,返回计数器值. sizeof()——>操作符,返回的是变量声明后“占用”的内存大小,可能不是实际大小. int num; sizeof(num);  返回num占用内存大小.也可写作sizeof num (当后面是变量名时,可不加括号.) sizeof(int);  返回int型数据占用内存大小.(当后面是类型名时,一定要加括号.) 下面

函数strlen()和sizeof的区别

函数strlen()和sizeof的区别: #include<stdio.h> #include<stdlib.h> #include<string.h> #define SENTENCE "It is a cat" int main() { char name[40]; gets(name); printf("%s\n", name); printf("The size of name is %zd %d\nThe s

关于strlen和sizeof的使用

在学习C语言中发现strlen和sizeof的关系不是很明确,今天来总结一下这两个的区别: sizeof 是运算符,用来计算字节数,在计算字符串数组大小时包含(\0) 在编译时计算大小,参数可以是数组.指针.类型.对象.函数等. strlen 是函数,用来测试字符串长度,不包含(\0) 在运行时计算大小,参数是字符型指针. #include <stdio.h> int main(void) { int size1, size2; char a[] = "hello"; si

strlen() 和 sizeof() 在字符串中的使用

#include <string.h> int _tmain(int argc, _TCHAR* argv[]) { char *pMyChar = "I like coding !"; char myChar[] = "I like coding !"; int num1(0),num2(0); num1 = sizeof(pMyChar); //num1=4,32位系统下指针占4个字节 num2 = sizeof(myChar); //num2=16

C语言之strlen和sizeof

sizeof运算符,它以字节为单位给出数据的大小. strlen()函数以字符为单位给出字符串的长度. 从上面可以明确的看出来,sizeof是运算符,而strlen则是函数. 一.sizeof sizeof的参数有很多,比如数据类型(int.float等).数组(数组作为参数时要使用数组名).指针.结构体.对象.函数等等. 数组--编译时分配的数组空间大小. 指针--存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,一般为4). 类型--该类型所占空间大小. 对象--对象的实际占用空间

【c语言】strlen与sizeof对数组和指针的求法

// strlen与sizeof对数组和指针的求法 #include <stdio.h> #include <string.h> int main() { char *pcColor = "12345678"; char acColor[] = "12345678"; printf("%d\n", strlen(pcColor));//8 求字符串的大小 printf("%d\n", strlen(ac