關於sizeof運算符和strlen()函數的個別區別分析

關於sizeof運算符和strlen()函數的個別區別分析

1、sizeof是運算符,strlen()是函數

2、sizeof可以用類型做參數,strlen()只能用char*做參數,且必須以‘\0’結尾。注意:strlen()算字符串長度的時候不包括'\n'。

3、sizeof還可以用函數做參數。

比如short fun();

printf("%d\n",sizeof(fun()));//輸出2


#include <stdio.h>

#include <stdlib.h>
#include <string.h>

int main(void)
{
int c[20];
char a[30];
char *b=(char*)malloc(40*sizeof(char));
printf("char =%d\n",sizeof(char));       //char=1
printf("int =%d\n",sizeof(int));              //int=4
printf("a =%d\n",sizeof(a));                  //a=30
printf("a[3] =%d\n",sizeof(a[3]));           //a[3]=1
printf("a+6 =%d\n",sizeof(a+6));          //a+6=4
printf("b =%d\n",sizeof(b));                   //b=4
printf("b+5 =%d\n",sizeof(b+5));           //b+5=4
printf("*(b+4) =%d\n",sizeof(*(b+4)));   //*(b+4)=1
printf("*b =%d\n",sizeof(*b));                 //*b=1
printf("c =%d\n",sizeof(c));                    //c=80

printf("\'m\' =%d\n",sizeof('m'));            //'m'=1
printf("\"m\" =%d\n",sizeof("m"));         //"m"=2

char* ss="0123456789";
printf("sizeof(ss) =%d\n",sizeof(ss));      //sizeof(ss)=4    ss指向字符串常量的字符指針
//sizeof獲得的是一個指針所佔的空間
printf("sizeof(*ss) =%d\n",sizeof(*ss));     //sizeof(*ss)=1    *ss是第一個字符
printf("strlen(ss) =%d\n",strlen(ss));      //strlen(ss)=10      獲取字符串長度

short fun();

printf("sizeof(f())=%d\n",sizeof(fun()));      //sizeof(f())=%d   sizeof還可以用函數做參數


return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章