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

区别如下:

1、指代上的区别

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

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

2、用法上的区别

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

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

3、规则上的区别

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

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



  • C璇█缂栧啓绋嬪簭
    绛旓細int ff);void prSTRL(STRL *strlHead);int findSTRL(STRL *strlHead);void meError(void *p);int main(){ STRL *strlHead=(STRL *)malloc(sizeof(STRL)),*strlTail=NULL; meError(strlHead); strlHead->next=NULL; strlTail=inputStr(strlHead,strlTail,0); printf("...
  • 棰樼洰:璁炬湁涓涓凡鎸変粠澶ц嚦灏忛『搴忔帓濂界殑鏁板垪瀛樻斁鍦ㄤ竴缁存暟缁勪腑,鐜拌緭鍏ヤ竴涓...
    绛旓細include <stdio.h> include <conio.h> void main(){ int i,j,k,strl,t;int ch;int xx[]={222,22,2,-2,-22,-222};ch=-666;strl=sizeof(xx)/sizeof(xx[0]);for (i=0;i<strl;i++) { if (ch>xx[i]) break;} xx[strl+1]='\0';for (j=strl;j>i;j--) { xx[...
  • C璇█灏忕▼搴,姹傝В
    绛旓細{//鎴愬姛璇诲叆涓涓暣鍨嬪垯瀛樺叆閾捐〃涓 if(Count == 10 )//琛ㄥご寤虹珛 { pN1=pHead=(struct IntList*)malloc(sizeof(struct IntList));pHead->x=t;pHead->pnext=NULL;} else
  • 澶х浠府蹇欏仛涓C璇█鐨棰
    绛旓細include <string.h>#include <stdio.h>void auto_complete(char *str, char *tmp, char* output) {char buff[100];int len;char* ptr;strcpy(output, "");ptr = output;len = strlen(tmp);do {while (*str == ' ') str++;if (sscanf(str, "%s", buff) != 1) break;while (*...
  • c璇█void鏄粈涔堟剰鎬漜璇█void鏄粈涔堟剰鎬漜璇█void鏄粈涔堟剰鎬
    绛旓細void鎸囬拡鏄粈涔?void鎸囬拡涓鑸绉颁负閫氱敤鎸囬拡鎴栨硾鎸囬拡锛屽畠鏄C鍏充簬鈥滅函绮瑰湴鍧(raw address)鈥濈殑涓绉嶇害瀹氥倂oid鎸囬拡鎸囧悜鏌愪釜瀵硅薄锛屼絾璇ュ璞′笉灞炰簬浠讳綍绫诲瀷銆傝鐪嬩笅渚嬶細int *ip;void *p;鍦ㄤ笂渚嬩腑锛宨p鎸囧悜涓涓暣鍨嬪硷紝鑰宲鎸囧悜鐨勫璞′笉灞炰簬浠讳綍绫诲瀷銆傚湪C涓紝浠讳綍鏃跺欎綘閮藉彲浠ョ敤鍏跺畠绫诲瀷鐨勬寚閽堟潵浠f浛...
  • C璇█鐨鍩烘湰璇硶鏈夊摢浜?
    绛旓細澶嶅悎璧嬪艰鍙ユ湁鍒╀簬缂栬瘧澶勭悊,鑳芥彁楂樼紪璇戞晥鐜囧苟浜х敓璐ㄩ噺杈冮珮鐨勭洰鏍囦唬鐮C璇█涓鐨勭┖璇彞:while(getchar!='\n');//杩欓噷鍖呭惈浜嗙┖寰幆浣搒canf涓巔rintf:scanf杈撳叆鏁版嵁鍙互鎸囧畾鏁版嵁瀛楁鐨勫搴,浣嗕笉鑳借瀹氭暟鎹殑绮惧害,鑰宲rintf鍒欏彲浠rintf(鈥%3,2f鈥,a);//杩欓噷鐨3.2琛ㄧず鎸夊疄鏁板舰寮忚緭鍑,杈撳嚭瀹藉害涓3,濡傛灉杈撳嚭鐨勬暟涓嶈冻3...
  • 濡備綍鐢–瀹炵幇3DES绠楁硶..
    绛旓細memset(dest16,0,sizeof(dest16));Do_DES(src16,key16,dest16,'e');fprintf(stderr,"Result: [%s]\n",dest16);} else if(strcmp(argv[1],"-d") == 0){ fprintf(stderr,"Please input the string that you want to decrypt(16 hex number):\n");memset(src16,0,sizeof(src16...
  • 杩欐涓夌骇C璇█鐨绋嬪簭閲岀殑绗6鎺掔殑鈥渕emset(str,0,80);鈥濇槸浠涔堟剰鎬?_鐧 ...
    绛旓細memset() 鍑芥暟甯哥敤浜庡唴瀛樼┖闂村垵濮嬪寲銆傚锛 char str[100]; memset(str,0,100); memset鐢ㄦ潵瀵逛竴娈靛唴瀛樼┖闂村叏閮ㄨ缃负鏌愪釜瀛楃锛屼竴鑸敤鍦ㄥ瀹氫箟鐨瀛楃涓茶繘琛屽垵濮嬪寲涓衡 鈥欐垨鈥榎0鈥欙紱渚:char a[100];memset(a, '\0', sizeof(a)); memcpy鐢ㄦ潵鍋氬唴瀛樻嫹璐濓紝浣犲彲浠ユ嬁瀹冩嫹璐濅换浣曟暟鎹被鍨嬬殑瀵硅薄锛...
  • 瀹氫箟鍑芥暟char* getSubStr(char* str, int m, int n),瀹炵幇鎴彇瀛楃涓瞫tr...
    绛旓細printf("%c", *(p+i));} return 0;} 绗笁涓細include <stdio.h> include <malloc.h> include <string.h> char* getSubStr(char* str, int m, int n){ if( (str != NULL)&&(m >0)&&(n > m)&& (n < (int)strlen(str) ) ){ char *temp = (char *)malloc( sizeof(...
  • 扩展阅读:sizeof double ... strlen和sizeof哪个算0 ... c语言中sizeof的用法 ... sizeof int 等于多少 ... sizeof short ... scratch ... strlen和sizeof的区别 ... sizeof float ... sizeof在c语言中是什么意思 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网