C的修炼
文章平均质量分 55
blackcastle7
这个作者很懒,什么都没留下…
展开
-
sizeof和strlen的区别
<br />sizeof是一个一元运算符,输出变量或者别的什么数组的占用内存空间大小的 <br />而strlen是以一个库函数,使用时需要需要包含库文件“string.h”结果返回字符串长度,不包含字符串结束符'/0'<br />例子:<br />#include "stdio.h"<br />#include <assert.h><br />void main()<br />{<br /> char* a = "abcdefg";<br /> printf("%d/n",sizeof(a));<br /转载 2011-01-22 20:31:00 · 292 阅读 · 0 评论 -
c++中char * 和 char []的区别(转)
<br />在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内<br /> 容程序是会崩溃的,而后者完全正确。<br /> 程序演示:<br /> 测试环境Devc++<br /> 代码<br /> #include <br />using namespace std;<br />main()<br />{<br /> char *c1 = "abc";<br /> char c2[] = "abc";<b转载 2011-01-22 20:33:00 · 367 阅读 · 0 评论 -
const int *a, int const *a,int * const a,区别,指针数组,数组指针,声明与定义(转)
几个容易混淆的概念,记在这里一、=====C语言声明的方法,对理解下面的两个都有帮助===========================(http://bbs.chinaunix.net/viewthread.php?tid=683372&extra=page%3D1)-------------------英文版----------------The Precedence Rule for Understanding C DeclarationsStep A : Declarations are read转载 2011-01-22 20:29:00 · 796 阅读 · 0 评论 -
C++引用&和指针在作为形参时的区别
int n;int &m = n;在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,对n来说是一样的。对于引用,有以下三条规则:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。假如在一个函数中动态申请内存空间,用指针和用原创 2011-01-22 20:24:00 · 6462 阅读 · 1 评论 -
C语言:内存字节对齐详解(转)
<br />一、什么是对齐,以及为什么要对齐:<br />1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br />2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要转载 2011-01-22 20:26:00 · 502 阅读 · 0 评论 -
C语言内存分布图(转)
<br />图一张。<br /> <br />原创 2011-02-12 21:08:00 · 1423 阅读 · 0 评论