zoukankan      html  css  js  c++  java
  • 【扩展知识2】函数strlen()和非函数sizeof的使用

    【扩展知识2】函数strlen()和非函数sizeof的使用


    【扩展文件夹】

    1. strlen函数
    2. sizeof


    ( 1 )函数strlen()

         原型:size_tstrlen ( const char * str );

         返回C字符串(只支持此类型)的长度。

    //strlen()的使用
     
    #include <stdio.h>
     
    int main( void )
    {
             chararray[ ]= "zhijiandeweixiao"; //指尖的微笑
            
             //array为数组的首个地址
             printf("%s的长度为%d
    ", 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
    ", sizeof( array ) );
             printf("sizeof( array[ 0 ] )= %d
    ", sizeof( array[ 0 ] ) );
             printf("sizeof( array )/ sizeof( array[ 0 ] )= %d
    ", num );
              
       return 0; 
    }


    注意事项:

    1. sizeof不能计算动态分配的数组大小。
    2. 当把数组作为函数的參数时。你无法在程序执行时通过数组參数本身告诉函数该数组的大小,由于函数的数组參数相当于指向该数组第一个元素的指针。

     
    //非函数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
    ", sizeof( array ) );
             printf("sizeof( array[ 0 ] )= %d
    ", sizeof( array[ 0 ] ) );
             printf("sizeof( array )/ sizeof( array[ 0 ] )= %d
    ", 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
    ", num );
      
      return ;
    }
     
     
    int main( void )
    {
             intarray[]= { 1, 2, 3, 4, 5, 6, 7 };
              
             print(array );
            
       return 0; 
    }

    执行结果:

    num= 1

    有结果可知: 当把数组作为函数的參数时,数组參数相当于指向该数组第一个元素的指针,所以的大小为1,即首元素。

    【指尖的微笑】错误在所难免,希望得到大家的指正^-^

    转载时保留原文的链接http://oursharingclub.joinbbs.nethttp://blog.csdn.net/mirrorsbeyourself

  • 相关阅读:
    Android Media Playback 中的MediaPlayer的用法及注意事项(二)
    Android Media Playback 中的MediaPlayer的用法及注意事项(一)
    34. Search for a Range
    33. Search in Rotated Sorted Array
    32. Longest Valid Parentheses
    31. Next Permutation下一个排列
    30. Substring with Concatenation of All Words找出串联所有词的子串
    29. Divide Two Integers
    28. Implement strStr()子串匹配
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6903696.html
Copyright © 2011-2022 走看看