C++之指针与引用,函数和数组】的更多相关文章

]={,,}; //ptr是指针,该指针类型是int[3] ]=&arr; cout << **ptr << endl;//第一次解指针时得到数组地址,第二次解指针取数组中的值 TYPE **ptr:定义一个指向TYPE类型的指针的指 空类型指针(void *)可以被任何类型数据指针类型的地址赋值,包括函数指针.由于不知道该地址的数据类型,所以不能操作空类型指针所指的对象,只能传送该地址或与其他地址值比较 int add(int a,int b) {return a+b;}…
以char类型为例: char a[100];     //a类型为char[100]    &a类型为 char (*)[100]    *a类型为char char *p = a;    //p类型为 char*, *p类型为char. 也可以写成char *p = &a; 类型char[100]和char (*)[100]可隐式到char*转化,指向第一个元素的地址.不包含隐式转换的写法应该:char *p  = &a[0];   而它们的区别: 再看 #include &l…
二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二维vector方法一:vector<vector <int> > ivec;ivec.resize(m);for(int i=0;i<m;i++) ivec[i].resize(n); 方法二:vector<vector <int> > ivec;ivec…
面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表若链表结点传入的是指针,则并不能创建链表,除非是二维指针即指向指针的指针,或者是指向指针的引用 因为传入的虽然是指针,但是对形参的操作并不能影响实参,函数内修改的是实参的副本.要想在函数内部修改输入参数,要么传入的是实参的引用,要么传入的是实参的地址. 指向指针的引用 void init_node_…
接着回顾函数.指针和应用. 函数 1.多维数组作为形参时,第一维的大小可以省略(也可以不省略),但是其他维的大小必须指定.比如二维数组形参,int array[3][]不正确,int arry[][10]正确.因为实参传来的是数组的起始地址,在内存中按行存放,但并不区分行和列,如果在形参中不指定列数,则系统无法确定应为多少行多少列. 2.在C++中,可以为参数指定默认值,在函数调用时,没有指定与形参相对应的实参就自动使用默认值.C++函数的默认参数可以是常数,也可以是全局变量或全局常量,甚至可以…
1.数组跟指针的区别 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变. 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存.指针远比数组灵活,但也更危险. 数组和指针特点的简单比较: 数组 指针 保存数据 保存地址 直接访问数据 间接访问数据,先取得指针的内容,然后以它为地址取得数据 用于存储数目固定且类型相同的数据 通常用于动态数据结构 编译器自动分配和删除…
指针指向一块内存,它的内容是所指内存的地址:而引用则是某块内存的别名,引用初始化后不能改变指向.使用时,引用更加安全,指针更加灵活. 初始化.引用必须初始化,且初始化之后不能呢改变:指针可以不必初始化,且指针可以改变所指的对象 空值.指针可以指向空值,不存在指向空值的引用.当引用或者指针作为参数传递的时候,拿到一个引用的时候,是不需要判断引用是否为空的,而拿到一个指针的时候,我们则需要判断它是否为空.这点经常在判断函数参数是否有效的时候使用. 引用和指针指向一个对象时,引用的创建和销毁不会调用类…
引用只是对象的另一个名字,通过在变量名前面添加"&”符号来定义,而指针保存的是另一个对象的地址,它们两都提供了间接访问所服务变量的途径. 但是它们的差别还是挺大的: 先从它们的值说起,一个有效的指针值通常具有三种面孔,一是保存一个特定对象的地址,而且一般是用取地址符号“&”把该特定对象的地址拿出来赋 给指针:二是0值,此时表明它不指向任何对象,尽管任一个int型变量的值可能为0,但是直接把int型变量赋给指针是非法的,不过,如果是在编译时可以 获得0值的const变量则指针对它网…
1 函数声明 (1)原型 告诉编译器函数的参数数量和每个参数的类型以及返回值的类型.编译器通过检查原型之后,就可以检查这个函数得调用,从而来确保参数正确,返回值无误. 通用技巧,将原型写在一个头文件当中,需要他的包含进来就好了 func.h int *func(int *value,int len) func.c #include "func.h"' void a(){} void b(){} (2)函数的参数 c函数的所有参数都是"传值调用"方式进行传递,也就是函…
数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素.默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素.对于数组指针的控制PHP提供了以下几个内建函数可以利用. ★current():取得目前指针位置的内容资料. ★key():读取目前指针所指向资料的索引值(键值). ★next():将数组中的内部指针移动到下一个单元. ★prev():将数组的内部指针倒回一位. ★end():将数组的内部指针指向最后一个元素. ★reset():将目前指针无条件移至第一个索…