C语言中的sizeof和strlen
2016-04-14 21:31
190 查看
1、sizeof是算符,strlen是函数;
2、sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的;
3、大部分编译程序,在编译的时候就把sizeof计算过了,这是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因;
4、strlen的结果要在运行的时候才能计算出来,用来计算字符串的长度,不是类型占内存的大小;
5、sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧,这是因为sizeof是个操作符不是个函数。
示例代码:
View Code
输出:
2、sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的;
3、大部分编译程序,在编译的时候就把sizeof计算过了,这是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因;
4、strlen的结果要在运行的时候才能计算出来,用来计算字符串的长度,不是类型占内存的大小;
5、sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧,这是因为sizeof是个操作符不是个函数。
示例代码:
#include <iostream> #include <cstring> using namespace std; int main(){ int temp[100]; char s[50] = "Hello"; cout<<sizeof(temp)<<endl; cout<<sizeof(s)<<" "<<strlen(s)<<endl; return 0; }
View Code
输出:
400 50 5
相关文章推荐
- [C语言][LeetCode][234]Palindrome Linked List
- c++的三次作业
- C语言变量与内存分配
- c++ map、multimap 的使用方法
- [C语言][LeetCode][2]Add Two Numbers
- 关于C++类型检查的一点小挫折
- 线程池原理及创建(C++实现)
- C语言学习笔记(结构体对齐问题)
- C/C++深度分析
- C/C++中各种类型int、long、double、char表示范围(最大最小值)
- 禁用编译器自动生成的函数(Effective C++之06)
- leetcode110题 题解 翻译 C语言版 Python版
- 【C++】C++中的Sequence Point,构造函数等问题
- 【day0414 C++】优先级队列 priority_queue的使用
- C语言 复制字符串 malloc
- 【day0414 C++】queue 队列的使用
- C语言 指针的深入理解
- 【day0414 C++】STL stack 栈的使用
- leetcode24题 题解 翻译 C语言版 Python版
- C++标准库和标准模板库