我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C语言 -> 入门基础 -> 文章内容  
栏目导航
· 入门基础 · c编程实例
· C数据结构 · C等级考试
热门文章
· C语言函数大全(c开头)..
· C语言函数大全(b开头)..
· C语言函数大全(d开头)..
· C语言函数简介(无实例..
· C语言函数大全(a开头)..
· C语言函数大全(e开头)..
· C语言函数大全(f开头)..
· C语言函数大全(h开头)..
· C语言函数大全(g开头)..
· C语言函数大全(v开头)..
· C语言的结构和C++类的..
· C语言函数大全(k开头)..
相关文章

· 轻轻松松C to C++
· [图文] 轻轻绕过你的..
· [图文] 轻轻松松绕过..
· 一招在手想变就变:轻..
查看更多与轻轻松松C to C++ (二)相关内容

轻轻松松C to C++ (二)
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 13:33:50  发布人:ghostfire

减小字体 增大字体

  二、挑战#define

  #define是C提供的一条很有用的指令,但在C++中,很有可能杜绝宏指令的使用。

  1 .const

  宏指令允许用户指定某一标识符的值作为一个常量,如:

  #define PI 3. 1415926

  它也可以用来定义字符串:

  #define HZK16 "HZK16F"

  以下使用可以通过:

  cout << "PI is“<<PI;

  cout << "Filename: "<< HZK16;

  但宏毕竟不是一个合法的对象,虽然它伪装得很完美。C++为用户提供了常量修饰符const,可以指定某个对象的值为常量。它阻止用户对其进行赋值或其它副作用,类似于上例:

  const float PI=3.1415926;
char*const HZK16="HZK16F";
PI = 3. 14; //error
HZK16="HZK16K"; //error: Cannot modify a const object

  但对于指针的处理似乎有些复杂,例如以下使用却又合法:

  HZK16[5]=’r’; //ok HZK16 ="HZK16K"

  清楚地了解const修饰的范围很有必要,如下是声明形式与相应含义:

  char*const cpl="I love you!“; //const修饰’*’,cp1是一个指向字符的指针常量
const char*cp2="I hate you!“; //const修饰’char' cp2是一个指向字符常量的指针
const char*const cp3="Get the hell out of here!“; // const分别修饰’char’和’*’,cp3是一个指向字符常量的指针常量

  因此,以下使用仍合法:

  strcpy(cpl "Oh no...“);

  cp2++;

  因为cpl只管盯住某一处的地址不放,而阻止其中的内容不被改写则不是它的责任,cp2则恰恰相反,它不允许你修改其中的内容,却可以被你指来指去(这个下场可能更惨)。只有使用两个修饰符(如cp3)才可能是最保险的办法。

  指向const的指针不能被赋给指向非const的指针:

  float*p=&PI;

  //error: Cannot convert 'const float*’ to 'float*’

  *p=3.14;

  这条限制保证了常量的正当含义。但注意由显式转换所引起的常量间接修改是可能的:

  //test08.cpp
#include <iostream.h>
void main()
{
    char * Spy;
    const char * const String = "Yahoo!";
    Spy = (char*)String;
    Spy[5] = '?';
    cout << String;
}

查看更多与轻轻松松C to C++ (二)相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      实例讲解 - C 语言的分支结构       轻轻松松C to C++
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图