『壹』 c语言中sizeof和strlen函数区别在哪

1、用法不一样

sizeof可以用类型做参数。

strlen只能用char*做参数,且必须是以''''结尾的。sizeof还可以版用函数做参数,比权如:

short f();

printf("%d ", sizeof(f()));

输出的结果是sizeof(short),即2。

2、功能不一样

sizeof的功能能是,获得保证,能容纳实现所建立的最大对象的字节大小。

strlen的功能是返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。

3、意思不一样

sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。

strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。

『贰』 c语言程序里sizeof是什么意思

在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。

(2)c语言sizeof与扩展阅读

需要注意的是,结构体的 sizeof,由于字节对齐的原因,结构体所占的空间,并不是其所有成员所占空间的累加和。

sizeof 对一个表达式求值,编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进行计算。所以

sizeof(1+2)等价于sizeof(int);

sizeof(1+2.5)等价于sizeof(double)。

『叁』 C语言中sizeof是什么意思

sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:


int a=10;

int arr=[1,2,3];

char str[]="hello";

int len_a = sizeof(a);

int len_arr = sizeof(arr);

int len_str = sizeof(str)

printf("len_a=%d,len_arr=%d,len_str=%d ",len_a,len_arr,len_str)

结果是:len_a=4,len_arr=12,len_str=6

(3)c语言sizeof与扩展阅读:

在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。

在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。

sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。

MSDN上的解释为:

The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.



网络-sizeof

『肆』 c语言strlen与sizeof的区别详解。。。。

首先strlen是字符串处理函数,用于字符串的.算字符个数的.比如"good",用strlen处理那就是4,不包含结尾0。
而sizeof是算占用空间的..比如char a[100]="good",那么sizeof之后就是100,因为一个字符占用1个字节,那100个字符不管是不是0那就是100,如果是int a[100]那就是400。

『伍』 C语言中sizeof与strlen的区别是什么

区别如下:来

1、指代上的区别自

(1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。

(2)strlen:做的是一个计数器。

2、用法上的区别

(1)sizeof:sizeof( type_name ); // sizeof(type); 在编译时有效,而不是在运行时有效。

(2)strlen:externunsignedintstrlen(char*s); 返回s的长度,不包含终止符NULL。

3、规则上的区别

(1)sizeof:可用于任何变量名,类型名或常量值。 当用于变量名(不是数组名)或常量时,不需要括号。

(2)strlen:从内存的某个特定位置开始扫描(可以是字符串的开头,中间的某个位置,甚至是不确定的存储区域),直到第一个字符串结束字符' 0'为止 ,然后返回计数器值。

『陆』 c语言中SIZEOF啥意义

sizeof
用来求一个变量或者一种类型所占用的字节数。比如sizeof(int)一般是4,sizeof(char)一般是1.如果定义了一个整型数,int
a,sizeof(a)就是sizeof(int),也就是4.
不过,sizeof的语义远不止这些,更详细的用法可以参阅c++文档

『柒』 c语言关于sizeof和strlen

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
而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsignedint类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
2.sizeof是算符,strlen是函数。
3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
sizeof还可以用函数做参数,比如:
short f();
printf("%d\n", sizeof(f()));
输出的结果是sizeof(short),即2。
4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。
5.大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因
char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
6.strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。
7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。
8.当适用于一个结构类型时或变量, sizeof 返回实际的大小,当适用于静态的空间数组, sizeof 归还全部数组的尺寸。
sizeof 操作符不能返回被动态分派的数组或外部数组的尺寸
9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,

『捌』 C语言中sizeof的用法

sizeof(a)
说的是结构体的大小2+1+2=5
sizeof(b)是指针b的大小,它在不同位的机器上占的字节数不同,在你的机器上可能是2了
指针不因为类型的不同而使占的自己数变化
它就是一个整型占的字节数
char *p;
int *q;
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(q));
结果都是2,不信自己试试

『玖』 C语言中,sizeof运算符有什么作用

sizeof运算符

该运算符在编译阶段就已经起作用了。它以字节为单位返回其操作数的大小。它的操作数可以是数据对象也可以是一个类型。如果是类型那么操作数需要用圆括号括起来。

如:sizeof(int)=4;

(9)c语言sizeof与扩展阅读:

C语言其他运算符:

1、取模运算符%

该运算符有个特性就是只支持整数运算。它的作用就是用左边的操作数除以右边的操作数得到的余数。它对浮点数其他类型不起作用。

如:11%2=1因为11除以2得5余1

2、自增自减运算符++/--

这种运算符的基本作用就是让其操作数增加1或者减去1。这种运算符有两种模式:前缀模式和后缀模式。

前缀模式:运算符放在操作数的前面,在表达式中求值时先将操作数进行加1或者减1操作然后再参与运算。

后缀模式:运算符放在操作数的后面,在表达式中求值时先将操作数参与运算然后再对操作数进行加1或者减1操作。

3、三目运算符?:

顾名思义就是三个操作数的运算符,它的用法时当问号前面的表达式的值为真时,取值为冒号前面的数值,否则取值为冒号后面的数值。由于它的执行效率较高,常被我们用来代替条件语句。

如:x>1?2:3;这句话的意思就是当x的值大于1时,整个表达式的值为2,否则为3。

『拾』 c语言中sizeof()和strlen()用法上有什么区别呢

两者都是返回字节数,
具体讲前者返回的是字节数,而后者返回的是字符数;
其次,sizeof返回的数量包括最后的结束符'\0',而strlen则没有。