[C++学习历程]基础部分 C++中的指针数组和结构
作者:苏生米沿
本文地址:http://blog.csdn.net/sushengmiyan/article/details/19938177
一。指针
对学习C++来说,指针是一项重要内容,以前,教科书中考核的时候,对这一块就比较模糊,现在从业两年了,重新回过头来再看一遍,或许会有深刻的理解了吧。
先看看百度百科中对c++指针的赞扬:
说指针是C++的灵魂。可见指针的重要性。
那么究竟什么叫做指针呢?简单的讲,指针就是你写的变量或者对象,在计算机中存放的那个地址,这就是相当于C++给我们提供了一个可以直接查询计算机中某一内存的对象的方法。可以更灵活的实现对计算机的操作。
在C++中定义一个指针需要这样操作,如:
int* p;
char * susheng;
那么p就代表了一个指向一个int类型的指针,susheng就代表了一个指向char类型的指针。
可以给指针赋值。如:
int m = 9;
int* p = &m;
那么运行之后 p =9;
还可以对指针设置指针,就是指针的指针,如:
int **p =9;
还有对函数和数组的指针,暂时先放到后期。
二、数组
数组理解起来很容易,就是代表一组数据嘛。怎么表示呢?就是定义的时候加上[]就代表了一个数组。如:
定义一个整型数组:
int a[10];
定义一个浮点型数组:
float v[3];
定义一个字符数组:
char susheng[4];
定义一个指针数组:
char* susheng[5];
数组的大小:括号中,数字就表示数组的大小,而数组总是从0开始算起,就是说,定义了susheng[4]就代表着是ssusheng[0] susheng[1] susheng[2] susheng[3] 而试图访问susheng[4]就会报错。
数组初始化,可以给数组制定初始化的数据,如:
susheng[4] ={'s', 'u', 's', 'h'};
susheng[1]就是 s,susheng[2]就是u...
值得注意的是,数组可以不全部初始化,剩余的那些自动补充为对应的数据类型的默认值。
三、常量
常量就是指不变化的量,比如我们可以定义常量PI 因为圆周率π是不变的,因此这样的我们可以定义为常量,后面使用的时候大家都统一使用这个,比如在进行计算的时候,需要统一定一下误差,避免大家一起开发的时候,各自使用自己的误差,对程序开发来说很实用。
那么常量如何定义呢?使用关键字const.如:
const float PI = 3.14159;
四、结构
结构体:使用struct定义,是一组自己定义的类型的集合,如:
struct susheng{
char name;
int age;
boole sex;
}
书本里给了几个忠告:
【1】因为指针相对比较复杂,为避免阅读不方便以及调试不方便出错难以查找等情况,避免非平凡的指针算数。
【2】不要超出数组越界编写
【3】尽量使用string而不是已0结尾的char数组。
[C++学习历程]基础部分 C++中的指针数组和结构的更多相关文章
- [C++学习历程]基础部分 C++中的类型和声明
前面搭起了C++的VS环境,可以在VS中编写C++代码了,也运行了最简单的一个程序Helloworld.那么我们该怎么才能写出功能强大的程序,怎样才能随心所欲的应用呢,那就需要重新回头来,从C++基础 ...
- [C++学习历程]基础部分 C++中的函数学习
本文地址:http://blog.csdn.net/sushengmiyan/article/details/20305815 作者:sushengmiyan 一.静态变量: 局部变量是线程到达定义的 ...
- [C++学习历程]基础部分 C++中的函数中的值参数、地址参数、引用参数实际例子
本文地址:http://blog.csdn.net/sushengmiyan/article/details/20406269 作者:sushengmiyan // sushengmiyanTest. ...
- C语言中的指针数组
C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...
- C#中自定义类数组和结构数组的使用
如有雷同,不胜荣幸,若转载,请注明 C#中自定义类数组和结构数组的使用 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一 ...
- 《挑战30天C++入门极限》C/C++中字符指针数组及指向指针的指针的含义
C/C++中字符指针数组及指向指针的指针的含义 就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针. 先看下面的代码,注意看 ...
- java基础64 JavaScript中的Arrays数组对象和prototype原型属性(网页知识)
1.Arrays数组对象的创建方式 方式一: var 变量名=new Array(); //创建一个长度为0的数组. 方式二: var 变量名=new Array(长度); //创建一个指定长度的数组 ...
- C/C++中的指针数组和数组指针
1. 指针数组 定义:int *p[n],由于[]的优先级高于*,p和[]结合成一个数组,该数组的元素存储的是int类型的指针,由于数组内容是指针,因此p+1的步长是sizeof(int*),在32位 ...
- C语言中的指针数组和数组指针
代码: #include <iostream> using namespace std; int main(){ ]; ]; cout<<sizeof(a)<<en ...
随机推荐
- js匿名函数,闭包
http://www.cnblogs.com/chenxianbin89/archive/2010/01/28/1658392.html
- jquery easyui datagrid 编辑行 类型combobox
完成编辑瞬间datagrid中显示的是combobox的value 而非text var rows=$('#tb1').datagrid('getRows'); for(var i=0;i<ro ...
- gcc创建静态库和共享库
静态库和动态(共享)库静态库:编译程序在编译使用库提供的功能代码的程序时将代码复制到该程序然后编译成可执行程序,这种库成为静态库共享库:共享库比静态库的处理方式更加灵活,因而其产生的可执行文件更小,其 ...
- redis的基本数据类型
一:redis是一个开源的,使用C语言编写,支持网络,可基于内存亦可持久化的日志型,key-value方式存储的nosql数据库.作为缓存服务器,速度效率都很快,和memcache相似 redis支持 ...
- FJUT寒假作业第二周G题解快速幂
题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=161#P6 题意:求n个数字的乘积对c取摸.主要就是有快速幂扩展到广义幂的过程. 首先题目 ...
- C# 定积分求周长&面积原理 代码实现
前言: 前些日子,因为工作原因,接触到了求解曲线周长,真的是搞了很久,学生时代真的很简单,但是如今的我来说,忘记了....很多人跟我应该一样. 所以来巩固加强一下记忆.一开始的时候,求周长嘛,找公式呗 ...
- leetcode 之 Single Number II
问题来源:Single Number II 问题描述:给定一个整数数组,除了一个整数出现一次之外,其余的每一个整数均出现三次,请找出这个出现一次的整数. 大家可能很熟悉另一个题目(Single Num ...
- html5全解析
htm是软件开发中非常基础的知识,也是很重要的知识,在web中是很重要的知识点,在此梳理一下主要内容: 1.HTML是什么? 全称为HyperText Markup Language,超文本标记语言, ...
- Cocos2D与SpriteBuilder的问题在哪提问
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道Cocos2D的教程中文版的非常少,注意我没有说Coc ...
- 【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )
转载注明出处 : http://blog.csdn.net/shulianghan/article/details/50348982 一. 日期选择器 (UIDatePicker) UIDatePic ...