【扩展知识2】函数strlen()和非函数sizeof的使用
【扩展知识2】函数strlen()和非函数sizeof的使用
【扩展文件夹】
- 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
【扩展知识2】函数strlen()和非函数sizeof的使用的更多相关文章
- python---基础知识回顾(二)(闭包函数和装饰器)
一.闭包函数: 闭包函数: 1.在一个外函数中定义了一个内函数 2.内函数里运用了外函数的临时变量,而不是全局变量 3.并且外函数的返回值是内函数的引用.(函数名,内存块地址,函数名指针..) 正确形 ...
- [Chapter 3 Process]Practice 3.1 相关知识:进程创建、fork函数
3.1 Using the program shown in the Figure3.30, explain what the output will be at LINE A 答案:LINE A 处 ...
- php中strlen()和mb_strlen()函数
php中strlen()和mb_strlen()函数 一.总结 一句话总结: mb_strlen()函数 的作用是 通过不同的编码计算字符串的长度: 比如 echo mb_strlen('中文a字1符 ...
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- C语言基础知识:几种特殊的函数宏封装方式
函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销. 函数宏本质上为宏,可以直接进行定义,例如: #define INT ...
- 【编程题目】请修改 append 函数,利用这个函数实现两个非降序链表的并集
42.请修改 append 函数,利用这个函数实现(链表):两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5另外只能输出结 ...
- [C/C++基础] C语言常用函数strlen的使用方法
函数声明:extern unsigned int strlen(char *s); 所属函数库:<string.h> 功能:返回s所指的字符串的长度,其中字符串必须以’\0’结尾 参数:s ...
- strlen() 和 strcpy()函数
strlen() 和 strcpy()函数的区别,这两个一个是返回一个C风格字符串的长度,一个是对一个C风格字符串的拷贝,两个本来功能上是不同的,此外,他们还有一些细小的区别:strlen(" ...
- C++静态成员函数不能调用非静态成员变量
其实我们从直观上可以很好的理解静态成员函数不能调用非静态成员变量这句话因为无论是静态成员函数还是静态成员变量,它们 都是在类的范畴之类的,及在类的整个生存周期里始终只能存在一份.然而非静态成员变量和非 ...
随机推荐
- python入门-PyCharm中目录directory与包package的区别及相关import详解
一.概念介绍 在介绍目录directory与包package的区别之前,先理解一个概念---模块 模块的定义:本质就是以.py结尾的python文件,模块的目的是为了其他程序进行引用. 目录(Dict ...
- MySQL sys Schema
MySQL sys Schema 使用sys Schema的先决条件 使用sys Schema sys Schema Progress Reporting sys Schema Object Refe ...
- 2. 更改InnoDB redo日志文件的数量或大小
2. 更改InnoDB redo日志文件的数量或大小 要更改InnoDB 重做日志文件的数量或大小,请执行以下步骤: 1)停止MySQL服务器,确保正常关闭且没有错误发生 2) 编辑my.cnf以更改 ...
- 专访Vue作者尤雨溪:Vue CLI 3.0重构的原因
1.为什么要对 Vue CLI 进行大规模修改? 尤雨溪认为旧版本的 Vue CLI 本质上只是从 GitHub 拉取模版,这种拉模版的方式有几个问题: (1) 在单个模版里面同时支持太多选项会导致模 ...
- 项目:开发->测试->上线:流程规范
1) 项目分析 2) 项目经理分工协作 程序就具体流程: 1: 按项目名称: 建git, 数据库, 线上测试虚拟机 2: 按项目经理分配的大的模块. 自行划分工作阶段 a: 划分为小的模块 b: 预估 ...
- pyquery 基本使用笔记
安装 pip install pyquery 导入 from pyquery import PyQuery as pq 初始化: from pyquery import PyQuery as pq h ...
- 【HIHOCODER 1320】压缩字符串(区间DP)
描述 小Hi希望压缩一个只包含大写字母'A'-'Z'的字符串.他使用的方法是:如果某个子串 S 连续出现了 X 次,就用'X(S)'来表示.例如AAAAAAAAAABABABCCD可以用10(A)2( ...
- 一道在CF上WA了9次才AC的A题题目与10个版本的代码代码
题目(题目链接:https://codeforces.com/problemset/problem/733/A): A. Grasshopper And the String time limit ...
- POJ-3100-Root of the Problem,原来是水题,暴力求解~~~
Root of the Problem Time Limit: 1000MS Memory Limit: 65536K http://poj.org/problem?i ...
- HDU 3264 区间内的最大最小之差
题目链接:http://poj.org/problem?id=3264 题目大意:在给定一堆牛的数量以及其高度的时候,每次给定一段区间,求这个区间内最高的牛和最矮的牛的高度之差为多少. 可以直接利用R ...