【扩展知识2】函数strlen()和非函数sizeof的使用
2014-11-21 09:18
316 查看
【扩展知识2】函数strlen()和非函数sizeof的使用
【扩展目录】
strlen函数
sizeof
( 1 )函数strlen()
原型:size_tstrlen ( const char * str );
返回C字符串(仅仅支持此类型)的长度。
( 2 )非函数sizeof的使用
有时候我们要求int型数组的元素。
如int array[ ]= { 1,2,3, 4, 5, 6….};个数少时可以数,但是当个数特多时,我们就得交给计算机算了。但是在strlen只仅算字符串的个数。要为能数int型或float型数组的个数,就得自己开动脑子了。
有效方法如下:
注意事项:
sizeof不能计算动态分配的数组大小!
当把数组作为函数的参数时,你无法在程序运行时通过数组参数本身告诉函数该数组的大小,因为函数的数组参数相当于指向该数组第一个元素的指针。
运行结果:
sizeof( array )= 28
sizeof( array[ 0 ] )= 4
sizeof( array )/ sizeof(array[ 0 ] )= 7
运行结果:
num= 1
有结果可知: 当把数组作为函数的参数时,数组参数相当于指向该数组第一个元素的指针,所以的大小为1,即首元素。
【指尖的微笑】错误在所难免,希望得到大家的指正^-^
转载时保留原文的链接http://oursharingclub.joinbbs.net和http://blog.csdn.net/mirrorsbeyourself
【扩展目录】
strlen函数
sizeof
( 1 )函数strlen()
原型:size_tstrlen ( const char * str );
返回C字符串(仅仅支持此类型)的长度。
//strlen()的使用 #include <stdio.h> int main( void ) { chararray[ ]= "zhijiandeweixiao"; //指尖的微笑 //array为数组的首个地址 printf("%s的长度为%d\n", array, strlen( array ) ); return 0; }
( 2 )非函数sizeof的使用
有时候我们要求int型数组的元素。
如int array[ ]= { 1,2,3, 4, 5, 6….};个数少时可以数,但是当个数特多时,我们就得交给计算机算了。但是在strlen只仅算字符串的个数。要为能数int型或float型数组的个数,就得自己开动脑子了。
有效方法如下:
//非函数sizeof的使用 #include <stdio.h> int main( void ) { intnum; intarray[]= { 1, 2, 3, 4, 5, 6, 7 }; //sizeof(array )== 28 个字节 //sizeof( array[ 0 ] )== 4 个字节 //所以sizeof(array )/ sizeof( array[ 0 ] )== 7,即数组元素个数 num=sizeof( array )/ sizeof( array[ 0 ] ); printf("sizeof( array )= %d\n", sizeof( array ) ); printf("sizeof( array[ 0 ] )= %d\n", sizeof( array[ 0 ] ) ); printf("sizeof( array )/ sizeof( array[ 0 ] )= %d\n", num ); return 0; }
注意事项:
sizeof不能计算动态分配的数组大小!
当把数组作为函数的参数时,你无法在程序运行时通过数组参数本身告诉函数该数组的大小,因为函数的数组参数相当于指向该数组第一个元素的指针。
//非函数sizeof的使用2 #include <stdio.h> int main( void ) { intnum; intarray[]= { 1, 2, 3, 4, 5, 6, 7 }; //array为数组首地址 //array为数组首元素的首地址 //sizeof(array )== 28 个字节 //sizeof( array[ 0 ] )== 4 个字节 //所以sizeof(array )/ sizeof( array[ 0 ] )== 7,即数组元素个数 num=sizeof( array )/ sizeof( array[ 0 ] ); printf("sizeof( array )= %d\n", sizeof( array ) ); printf("sizeof( array[ 0 ] )= %d\n", sizeof( array[ 0 ] ) ); printf("sizeof( array )/ sizeof( array[ 0 ] )= %d\n", num ); return 0; }
运行结果:
sizeof( array )= 28
sizeof( array[ 0 ] )= 4
sizeof( array )/ sizeof(array[ 0 ] )= 7
//非函数sizeof的使用2 #include <stdio.h> void print( int array[] ) { int num; num= sizeof( array )/ sizeof( array[ 0 ] ); printf( "num= %d\n", num ); return ; } int main( void ) { intarray[]= { 1, 2, 3, 4, 5, 6, 7 }; print(array ); return 0; }
运行结果:
num= 1
有结果可知: 当把数组作为函数的参数时,数组参数相当于指向该数组第一个元素的指针,所以的大小为1,即首元素。
【指尖的微笑】错误在所难免,希望得到大家的指正^-^
转载时保留原文的链接http://oursharingclub.joinbbs.net和http://blog.csdn.net/mirrorsbeyourself
相关文章推荐
- C语言中sizeof()与strlen()函数的使用入门及对比
- 重写string.h中的字符串操作函数--strlen,strlen 与sizeof的区别
- JavaScript中字面量与函数的基本使用知识
- 正确使用sizeof和strlen
- Oracle分组扩展函数的使用(主要增加小计及合计金额)
- c++中的strlen 函数和sizeof运算符的比较
- strlen与sizeof使用中易混淆之处
- 关键字sizeof()和函数strlen()
- 不使用中间变量实现字符串长度函数strlen
- strlen,wcslen,lstrlen函数与sizeof运算符
- 函数sizeof、strlen
- sizeof和strlen区别和使用方法
- 使用prototype扩展的JavaScript常用函数库
- sizeof()和strlen()区别和使用方法
- strlen和sizeof函数区别(深入理解)
- 关于strlen/sizeof函数在char和string类型中的应用
- 对比C++中sizeof与strlen函数的区别
- javascript中的prototype属性使用说明(函数功能扩展)
- Mootools中使用extend和implement给你的函数扩展功能或方法
- xslt函数扩展之使用自定义函数(C#,VB,JavaScript)