易截截图软件、单文件、免安装、纯绿色、仅160KB

【linux】c++ 内存管理(二)

3. 指针与数组的比较
不同点:
      数组:要么在惊天存储区域被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命周期内保持不变,只有数组的内容可以改变。
指针:可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。
 
两者特征比较的例子:
(1) 修改内容:
char a[] = “hello”;
a[0] = ‘x’ ; // ok
char *p = “hello”; //注意p指向常量字符串
p[0] = ‘x’; //错误。编译器不能发现该错误
指针p指向常量字符串”hello”(位于静态存储区,内容为hello),常量字符串的内容是不可以被改变的。企图修改常量字符串的内容而导致运行错误。
(2) 内容复制与比较
不能对数组名进行直接复制与比较,数组间复制应该使用标准函数strcpy进行复制。同理,比较b和a的内容是否相同,不能使用if( b == a )来判断,应该使用标准库函数strcmp进行比较。
语句p = a并不能将数组a的内容复制给指针p,而是把a的地址赋给了p,要想复制a的内容,可以先用库函数malloc为p申请一块容量为strlen(a) + 1 个字符的内存,再用strcpy进行字符串复制。同理,if( p == a) 比较的不是内容而是地址,应该用库函数strcmp比较。
// 数组
      char a[] = “hello”;
      char b[10];
      strcpy( b, a); //不能用if( b == a)
      …….
// 指针
      int len = strlen(a);
      char *p = (char *)malloc( sizeof(char) * ( len + 1) );
      strcpy( p, a); // 不能用 p = a;
      if( strcmp( p, a ) == 0 ) // 不能用if( p == a )
…….
(3) 计算内存容量
      用运算符 sizeof 可以计算出数组的容量(字节数)。
      下例中,sizeof (a)的值是12(注意别忘记了’’)。指针p指向a,但是sizeof(p)的值却是4(32位计算机),这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char *),而不是p所指的内存容量。
 &nbs


相关文档:

在Eclipse中开发C/C++项目 转帖


C/C++ development with the Eclipse Platform
Pawel Leszek
 
摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识。虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持。在这篇文章里,你将学会如何使用CDT(C/C++ Development Toolkit),一个在Eclipse平台上最 ......

Linux下Apache2+MySQL5+PHP5安装

安装环境:VMware Workstation 5.5.0 build-18463
Linux版本:Red Hat Enterprise Linux AS (2.6.9-42.EL)
软件版本:MySQL5 - mysql-5.0.37.tar.gz
     Apache2 - httpd-2.2.4.tar.gz
     PHP5 - php-5.2.1.tar.gz
     (将以上文件保存至/home/tmp目录)
[MySQL]
# cd /home/tmp (进入压缩包 ......

Linux图形化历程

Linux图形化历程
    注:此段文章综合了众多资料,主要引用个人电脑的文章
   
    谈起OPIE,就不能不谈Qt,然而要对Qt有个来龙去脉的认识,需要从Linux
图形化说起。让我们回顾下Linux图形化界面发展的历史。
    Linux实际上是以UNIX为模板的,它继 ......

Linux 关于动态链接库以及静态链接库的一些概念

库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a
为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。
ln -s libhello.so.1.0 libhello.so.1 ......

Linux桌面为什么会更美?






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
       计算机桌面的“美”确实很抽象,不像女性的美,人们不易表达清楚。但是,
A
相对
B“
更美”的论断,却是比较容易说明白的。
& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号