zoukankan      html  css  js  c++  java
  • C/C++查漏补缺(常更)

    一、#define宏定义

      如下程序段,则输出结果为:

      #define MAX 12

      int main(){

        cout << "20MAX019" << endl;

      }

      输出结果:20 , 知识点:#define定义 的宏常量不替换程序中""里的东西

      https://www.cnblogs.com/bytebee/p/8205450.html

    二、const常量指针与指针常量

      定义一个int常量

      const int a = 10;

      int const a = 10;

      这两种方法都是合法的,意义相同。当const用于指针呢?

      int * const p = &a; // 指针常量 p = NULL; 非法

      int const *p = &a; // 常量指针 *p = 20; 非法

      const int *p = &a; // 常量指针

      若想定义一个指针,既不能改变其值,也不能改变其指向的值,

      const int * const p = &a; 

      下面这个语句看着有点怪怪的

      int const * const p = &a;

      其实它实现了和上一条定义相同的效果

    三、printf()函数

      如下输出语句是否正确

      char *s = "parliament";

      printf(s); // ok, 输出 parliament

      printf(s+1); // ok, 输出arliament

      printf("c++"+1); // ok,输出++ 

      (对于输出结果不明白的参见第四条)

      初学c时,接触的用printf()输出字符串的方式就是printf("%s", 字符串);第一次看到上面的输出语句觉得是语法错误,直到前天(2019.11.18)看到87年一道键盘字母对应的题目题解后才返回来又看了一下,没想到是正确的。

      该题链接

      https://www.cnblogs.com/songlee/p/5738125.html

    四、字符串常量

      在之前的文章里提到过字符串常量代表的其实是一个地址,是字符串首元素的地址,今天再把它细说一下

      比如字符串常量"string",看着是一个字符串,其实本质是一个const char*的地址,是一个地址常量

      "string"+1则代表将该地址移动 1*char个字节数,即移动到第二个元素't'的地址,此时输出结果为 "tring"

      "string"[1]呢?相当于*("string"+1),取第二个元素的值,即't'

      1["string"]呢?同上啦,和数组下标用法是相同的

      

      

      

       

  • 相关阅读:
    配置Domino CA以支持SSL
    如何在Notes中撰寫JavaServlet程式
    Lotus 技术点之导入
    Lotus Domino R5开发心得
    Domino中用可定制表单显示定制的错误消息
    ExtJs GridPanel 完整实例
    当程序员变成软件项目经理
    SQL Server 索引结构及其使用
    C#事务处理
    on用onpropertychange,oninput事件解决onchange事件的不足
  • 原文地址:https://www.cnblogs.com/GuoYuying/p/11895602.html
Copyright © 2011-2022 走看看