示例代码:
// sizeof_strlen.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; //by zhaocl int main() { //静态数组 char fname[10] = "zhaocl"; int a = strlen( fname ); //6 int b = sizeof( fname ); //10 cout << "a=" << a << " " << "b=" << b << endl; //指针 char *lname = "zhaocl"; int c = sizeof( lname ); //4 lname是第一个元素的指针地址 int d = sizeof( *lname ); //1 *lname是第一个元素 'z' int f = strlen( lname ); //6 指针的话获取长度 cout << "c=" << c << " " << "d=" << d << " " << "f=" << f << endl; system( "pause" ); return 0; }
说明:
1、sizeof是操作符,strlen是函数
2、strlen只能以'\0'结尾的char *做参数,sizeof可以是数组、类型、函数等等。
3、数组做sizeof参数时不退化,做strlen参数时退化为指针
4、指针做参数时sizeof不能获取数组大小,strlen可以