C++笔记--指针数组和结构
- 指针
- 类型为T*的变量能保存一个类型T对象的地址
- Char c=‘a’;Char * p=& c;//保存了c的地址
- 指针的操作一般都是间接的引用,就是相当于引用指针所指的对象。
- 0是一个特殊的东西。它可以被当做任意的整型,浮点类型,或者是指针,这些都是视情况而定的。0表示当时的一个指针没有指向任何对象。
- 类型为T*的变量能保存一个类型T对象的地址
- 数组
- 数组的大小必须是一个常量,如果想用变量来表示数组的大小,可以使用vector来表示,例如:vector<int> vi(i);//I表示一个变量,数组的大小可以变化
- 数组不会出现赋值操作的。例如:v4={'a','b','c'};//错误的,没有数组赋值
- 字符串数组
- 字符串总是以一个空字符‘\0’结束,所以总是比看到的大小+1
- Char *P=“abc”;//这个是合法的,char *P就是相当于一个字符串
P[2]='A';//这个是错误的,给常量赋值不对 - Char P[]="ABC";
P[2]='A';//这个是正确的。
- 在应用于指针的时候,==比较的是变量的地址值,而不是指针所指的值。
- 数组指针
- 数组的名字可以被用做到它的开始元素的指针
- Int v[]={1,2,3,4};
int *p=v;//这里p指向的是数组v的开始元素(隐式的转换,从int[]转换成了int*)
int *p=&v[4];//指向最后元素之后的一个位置,实际上并没有什么用
- Int v[]={1,2,3,4};
- 数组的名字可以被用做到它的开始元素的指针
- 常量--const
- 加上const的常量在声明的时候就必须赋值
- 对于const的常量,有些时候常量的值在编译的时候已知,就不用为它分配存储空间,有些就是在编译的时候值不知,就必须为它分配存储空间。
const int c1=1;//不需要分配空间
const int c2=2;//
const int c3=my_f(3);//这个在编译时未知,所以要分配空间
const int * p=&c2;//这个就要为c2分配空间了,因为在这里调用了c2的地址。
- 指针和常量
- 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
- Const char* 和char const*是一样的,都是指向一个常量的普通指针,如果从右到左读的话,能对理解很有帮助
char *const p;//p是一个const指针到char
const char * p;//p是一个指针指到const char
- Const char *p=s;//这个是指向常量的指针,p[2]是不能修改的,但是p指针可以:p=pv;
- 引用
- 一个引用就是某对象的另一个名字,而且在引用的时候必须进行初始化,extern可以表示该变量在别处进行了初始化
- Int &z=p;//z和p同名
- 一个引用就是某对象的另一个名字,而且在引用的时候必须进行初始化,extern可以表示该变量在别处进行了初始化
- 指向void的指针
- 一个指向任何类型对象的指针都是可以赋值给void*的。
- Void*最重要的用途就是需要向函数传递一个指针,而又不能对对象的类型做出任何假设,它表示的就是一个空类型的指针对象。
- 结构
- 结构类型对象的大小未必是其成员对象大小之和。
- 忠告:
C++笔记--指针数组和结构的更多相关文章
- [C++学习历程]基础部分 C++中的指针数组和结构
作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/19938177 一.指针 对学习C++来说,指针是一项重要内容,以前,教 ...
- c语言指针数组和结构体的指针
指向数组的指针,先初始化一个数组,使用传统方式遍历 void main() { ] = { ,,,, }; ; i < ; i++) { printf("%d,%x\n", ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- 《C和指针》 读书笔记 -- 第10章 结构和联合
1.聚合数据类型能够同时存储超过一个的单独数据,c提供了两种类型的聚合数据类型,数组和结构. 2.[1] struct SIMPLE { int a; }; struct SIMPLE x; [2] ...
- C语言基础知识点整理(函数/变量/常量/指针/数组/结构体)
函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...
- 【嵌入式开发】C语言 结构体相关 的 函数 指针 数组
. 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...
- C语言 结构体相关 函数 指针 数组
. 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...
随机推荐
- OpenCV - Android Studio 2.2 中利用CAMKE进行OpenCV的NDK开发
我在http://www.cnblogs.com/fx-blog/p/8206737.html一文中提到了如何在Android Studio中Java层导入OpenCV(包含opencv_contri ...
- 网页播放rtsp流媒体
解决方法: 1.搭建Red5流媒体服务器(其他还有CRTMPD.NGINX-RTMP.SRS) 2.FFmpeg(其他还有live555)实现监控摄像头的RTSP协议转RTMP协议直播 3.搭建WEB ...
- BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)
题目链接 dp进阶之CDQ分治优化dp. 前置技能:dp基本功底,CDQ分治,树状数组. 问题等价于求二维最长上升子序列,是一个三维偏序问题(时间也算一维). 设$dp[i]=(l,x)$为以第i枚导 ...
- C#面向对象(一):明确几个简单的概念作为开胃菜
绝对干货,总结了下C#面向对象的干货内容以及我几年来的使用心得,分享出来 先明确几个简单概念作为开胃菜: 1.命名空间 namespace BackStageManagement.Services 关 ...
- [SP16549]QTREE6
luogu vjudge 题意 给你一棵n个点的树,编号1~n.每个点可以是黑色,可以是白色.初始时所有点都是黑色.支持两种操作: 0 u:询问有多少个节点v满足路径u到v上所有节点(包括)都拥有相同 ...
- ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=5667 这题的关键是处理指数,因为最后结果是a^t这种的,主要是如何计算t. 发现t是一个递推式,t(n) = c ...
- YII1.1分页
一.控制器 $criteria = new CDbCriteria(); //这里可以加一些条件 $criteria->addCondition('parent_id='.$this->c ...
- DWZ富客户端HTML框架
一.了解 概述:是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. 目的:简单实用.扩展方便(在原有架构基础上扩展方便).快速开发.RIA思路.轻量级 使用:用html扩展的方式来代替 ...
- Windbg内核调试之一: Vista Boot Config设置
Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另 ...
- Python 函数之递归
递归函数定义 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 我们来计算阶乘 n! = 1 x 2 x 3 x ... x n ,用函数 fact(n) 表示 f ...