1. 指针
        1. 类型为T*的变量能保存一个类型T对象的地址
          1. Char c=‘a’;Char * p=& c;//保存了c的地址
        1. 指针的操作一般都是间接的引用,就是相当于引用指针所指的对象。
        2. 0是一个特殊的东西。它可以被当做任意的整型,浮点类型,或者是指针,这些都是视情况而定的。0表示当时的一个指针没有指向任何对象。
      1. 数组
        1. 数组的大小必须是一个常量,如果想用变量来表示数组的大小,可以使用vector来表示,例如:vector<int> vi(i);//I表示一个变量,数组的大小可以变化
        2. 数组不会出现赋值操作的。例如:v4={'a','b','c'};//错误的,没有数组赋值
      2. 字符串数组
        1. 字符串总是以一个空字符‘\0’结束,所以总是比看到的大小+1
        2. Char *P=“abc”;//这个是合法的,char *P就是相当于一个字符串
          P[2]='A';//这个是错误的,给常量赋值不对
        3. Char P[]="ABC";
          P[2]='A';//这个是正确的。
        1. 在应用于指针的时候,==比较的是变量的地址值,而不是指针所指的值。
      1. 数组指针
        1. 数组的名字可以被用做到它的开始元素的指针
          1. Int  v[]={1,2,3,4};
            int *p=v;//这里p指向的是数组v的开始元素(隐式的转换,从int[]转换成了int*)
            int *p=&v[4];//指向最后元素之后的一个位置,实际上并没有什么用
      2. 常量--const
        1. 加上const的常量在声明的时候就必须赋值
        2. 对于const的常量,有些时候常量的值在编译的时候已知,就不用为它分配存储空间,有些就是在编译的时候值不知,就必须为它分配存储空间。
          const int c1=1;//不需要分配空间
          const int c2=2;//
          const int c3=my_f(3);//这个在编译时未知,所以要分配空间
          const int * p=&c2;//这个就要为c2分配空间了,因为在这里调用了c2的地址。
        1. 指针和常量
          1. Const  char *p=s;//这个是指向常量的指针,p[2]是不能修改的,但是p指针可以:p=pv;
            char *const p=s;//常量指针
            p[3]='g';//正确,指向的不是一个常量
            p=pv;//错误,这个指针是常量指针,指向不能修改
            const char *const p=s;//这个是一个const到const
          1. Const char*   和char  const*是一样的,都是指向一个常量的普通指针,如果从右到左读的话,能对理解很有帮助
            char *const p;//p是一个const指针到char
            const char * p;//p是一个指针指到const char
      1. 引用
        1. 一个引用就是某对象的另一个名字,而且在引用的时候必须进行初始化,extern可以表示该变量在别处进行了初始化
          1. Int &z=p;//z和p同名
      2. 指向void的指针
        1. 一个指向任何类型对象的指针都是可以赋值给void*的。
        2. Void*最重要的用途就是需要向函数传递一个指针,而又不能对对象的类型做出任何假设,它表示的就是一个空类型的指针对象。
      1. 结构
        1. 结构类型对象的大小未必是其成员对象大小之和。
    1. 忠告:

C++笔记--指针数组和结构的更多相关文章

  1. [C++学习历程]基础部分 C++中的指针数组和结构

    作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/19938177 一.指针 对学习C++来说,指针是一项重要内容,以前,教 ...

  2. c语言指针数组和结构体的指针

    指向数组的指针,先初始化一个数组,使用传统方式遍历 void main() { ] = { ,,,, }; ; i < ; i++) { printf("%d,%x\n", ...

  3. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  4. C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用

    类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...

  5. 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)

    一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...

  6. 《C和指针》 读书笔记 -- 第10章 结构和联合

    1.聚合数据类型能够同时存储超过一个的单独数据,c提供了两种类型的聚合数据类型,数组和结构. 2.[1] struct SIMPLE { int a; }; struct SIMPLE x; [2] ...

  7. C语言基础知识点整理(函数/变量/常量/指针/数组/结构体)

    函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  8. 【嵌入式开发】C语言 结构体相关 的 函数 指针 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...

  9. C语言 结构体相关 函数 指针 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...

随机推荐

  1. OpenCV - opencv3 图像处理 之 图像缩放( python与c++实现 )

    转自:https://www.cnblogs.com/dyufei/p/8205121.html 一. 主要函数介绍 1) 图像大小变换 cvResize () 原型: voidcvResize(co ...

  2. 排列(加了点小set就过了,哈哈哈)

    Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. 输入描述: 1 2 3 4 1 1 2 3 0 1 2 3 0 0 0 0输出 ...

  3. TP中讲的两种ajax方法

    一. 控制器中public function add(){ $this->display(); } public function ajaxSave(){ if(IS_AJAX){ echo ' ...

  4. set/multiset容器

    一.二叉树基本概念 二叉树就是任何节点最多只允许有两个子节点.分别是左子节点和右子节点. 二叉搜索树,是指二叉树中的节点按照一定的规则进行排序,使得对二叉树中元素访问更加高效.二叉搜索树的放置规则是: ...

  5. BZOJ2276:[POI2011]Temperature

    浅谈队列:https://www.cnblogs.com/AKMer/p/10314965.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?i ...

  6. poj 2096 , zoj 3329 , hdu 4035 —— 期望DP

    题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...

  7. Python time和datatime模块

    time和datatime模块 时间相关的操作,时间有三种表示方式: 时间戳               1970年1月1日之后的秒,即:time.time() 格式化的字符串    2014-11- ...

  8. 第六篇 VIM你值得拥有!

    vim 是一个具有很多命令的功能非常强大的编辑器.限于篇幅,在本教程当中      就不详细介绍了.本教程的设计目标是讲述一些必要的基本命令,而掌握好这      些命令,您就能够很容易将vim当作一 ...

  9. lrzsz-串口传输文件

    二.编译安装 1.解压文件,进入目录     tar –zxvf lrzsz-0.12.20.tar.bz        cd / lrzsz-0.12.20 ./configure  2../con ...

  10. 解决webpack因新版本打包失败问题--ERROR in multi ./src/main.js ./dist/bundle.js

    最近在学习webpack打包过程中遇到的一个问题向大家分享下! 创建了一个webpacksty的目录,目录下放着dist,src子目录,然后通过node环境下,npm init -y 初始化项目出现p ...