c / c++中一些常见区别(功能类似)

1.sizeof和strlen的区别

  1)sizeof操作符的结果类型是size_t,它在头文件中的typedef为unsigned int 类型。该类型保证能容纳实现所在建立的最大对象的字节大小

  2)sizeof 是操作符,strlen是函数

  3)sizeof是可以用类型做参数,strlen只能用char *做参数,且必须以"\0"结尾,sizeof 还可以以函数做参数。

  4)数组做sizeof的参数不退化,传递给strlen就退化为指针。

  5)大部分编译程序在编译的时候就把sizeof计算过了,是类型或者是变量的长度。这就是sizeof(x)可以用来定义数组维数的原因

  6)strlen 的结果是在运行的时候才能计算出来,用来计算字符串的长度,而不是类型占用类村的大小

  7)sizeof后如果是类型必须加括号,如果是变量名可以不加括号,这是因为sizeof是操作符而不是函数

  8)当使用了一个结构提类型类型或者变量,sizeof返回实际的大小,当使用一静态的空间数组时,sizeof返回全部数组的尺寸,sizeof操作符不能返回被动态分配的数组或外部的数组的尺寸

  9)数组作为参数传给函数的时候是指针而不是数组,传递的是数组的首地址

  

时间: 2024-11-05 16:31:02

c / c++中一些常见区别(功能类似)的相关文章

matlab中subplot函数的功能 类似python

原文:http://blog.163.com/my_it_dream_pwj/blog/static/17841430520112294342649/ 和python 中类似 subplot 功能 分割figure,创建子坐标系 语法 h = subplot(m,n,p) or subplot(mnp)       subplot(m,n,p,'replace')       subplot(m,n,P)       subplot(h)       subplot('Position',[le

制作类似ThinkPHP框架中的PATHINFO模式功能(二)

距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.html)已经过去好多天了,今晚就将剩下的一些东西扫尾吧. 上一篇文章已经实现了PATHINFO模式的URL,即我们访问MVC模式搭建的站点时,只需要在域名后面加上(/module/controller/action)即可,很智能化.并且通过new Object时的自动触发函数实现类文件的自动载入,因此只要我们搭

C#自定义双向链表,功能类似C++中的CList

参照博客: http://www.cnblogs.com/linzheng/news/2011/07/14/2106530.html. http://blog.csdn.net/dongxinxi/article/details/6303421 C#自定义双向链表,功能类似C++中的CList,布布扣,bubuko.com

mysql记录集中记录序号,MySQL中实现rownum功能类似的语句(转)

MySQL 如何实现 Oracle 的 ROWNUM mysql> SELECT * FROM frutas;+-----------+----------+| nombre    | color    |+-----------+----------+| fresa     | rojo     || platano   | amarillo || manzana   | verde    || uva       | verde    || pera      | verde    || m

Python基础学习-Python中最常见括号()、[]、{}的区别

Python中最常见括号的区别: 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. Python中的小括号(): 代表tuple元祖数据类型,元祖是一种不可变序列.创建方法很简单,大多数时候都是小括号括起来的. 1 >>> tup = (1,2,3) 2 >>> tup 3 (1, 2, 3) 4 >>> () #空元祖 5 () 6 >>&

LotusScript提升大字符串拼接函数(功能类似java中StringBuffer)

LotusScript提升大字符串拼接函数(功能类似java中StringBuffer),代码如下: Class StringBuffer Public count As Integer Private arr() As String Private size As Integer Private increment As Integer Sub New(Byval a As Integer) Redim arr(a) increment=a count=0 End Sub Sub add(By

CentOS中实现与Ubuntu下apt-get install build-essential功能类似的命令

在Ubuntu中安装完系统后,可以直接使用apt-get install build-essential命令安装常用的开发编译工具包.在诸如CentOS这样的使用Yum包管理的系统中,其实也有类似的实现方法.解决方案是使用如下命令: [[email protected] ~]# yum groupinstall "Development Tools" yum groupinstall 命令它安装一个安装包组,这个安装包组包涵了很多单个软件,以及单个软件的依赖关系. 原文地址:https

C#中的常见集合类的比较

一.非泛型集合与泛型集合 非泛型集合:Array.ArrayList.HashTable.Queue.Statck.SortedList 泛型集合:List.Dictionary.Queue.Stack.SortedList 二.常见的集合类 Array.ArrayList.List (一)Array: 即常见的数组形式,大小固定,命名空间为System (二)ArrayList: 命名空间为System.Collection,是数组的复杂版本.ArrayList 类提供在大多数 Collect

11GR2 中的常见 RMAN 问题

本文是Oracle support对11GR2 RMAN备份过程中的问题总结 11gR2 中少数几个结构更改对 RMAN 设置产生了广泛的影响 1. Snapshot/Backup(快照/备份)控制文件位置必须位于 RAC 环境中的共享位置. 在 11gR2 及更高版本中,控制文件的备份在执行时不会持有 CF enqueue.对于非 RAC 数据库,这不会造成任何影响.但是,对于 RAC数据库,由于在 11gR2 中控制文件备份机制发生了更改,集群中的任何实例都可以写入到 snapshot/ba