指针
吃透指针,熟悉指针基础用法,消除指针恐惧
深山里的小白羊
这个作者很懒,什么都没留下…
展开
-
什么是指针
1.什么是指针指针是一种地址值,例如0x000012ea。2.什么是指针类型指针类型是一种新的类型,常见的类型有整形(int),用来存放整数;字符型(char),用来存放字符或字符串;浮点型(float),用来存放浮点型数据,比如小数。而指针类型是一种与他们独立的新类型,它存放的是各种数据存放的地址。它的格式为:类型 *,(*为间接访问运算符/解引用指针)3.常见的指针类型整形...原创 2018-07-28 11:30:22 · 7019 阅读 · 0 评论 -
空指针与野指针
1.空类型指针首先什么是空类型呢,空类型就是void,自然,空类型指针就是void *2.空类型指针的作用void * 可以指向任何类型对象的地址,表示这是一个指针,和地址值有关,但不知道存储在此地址上的对象的类型,所以在取空类型指针所指向的值的时候,应将空类型指针转换为对应的指针类型int a = 10;char b = 'a';float c = 12.0; void...原创 2018-07-28 14:28:35 · 20268 阅读 · 3 评论 -
指针与一维数组
1.数组名数组名本身就是一个指针(地址),它代表了数组的首地址,数组在内存中连续存放对于一个数组a,a的值与&a[0]相等int a[] = { 1,2,3,4,5 };int *p = a;printf("%p %p %p\n", a, &a[0], p);我们发现三者地址相同2.指针操作数组1)把指针当作数组名来使用格式:指针名[偏移...原创 2018-07-28 15:15:12 · 9627 阅读 · 3 评论 -
指针与二维数组
1.二维数组可以理解为是一个一维数组,不过每个数组元素又是一个一维数组int a[2][3]={{1,2,3},{4,5,6}};可以理解为,二维数组只有两个元素,即a[0]和a[1],只不过元素类型为一维数组2.指向二维数组的指针(行指针)格式:类型 (*指针名) [N]N为数组的第二维长度2.1二维数组指针与指针型数组的区别int a[][3] = { {...原创 2018-07-28 18:32:27 · 1186 阅读 · 0 评论 -
指针与函数
1.指针可以调用函数函数名本身就是一个指针(地址),这个地址就是函数的入口地址int sum(int a, int b){ return a + b;}int main(){ printf("%p\n", sum); system("pause"); return 0;}可以发现,函数名就是一个地址2.函数指针变量定义格式:返回值 (*变量名)(参数...原创 2018-07-28 22:46:00 · 3607 阅读 · 0 评论 -
指针与字符串
1.字符串可以看成一个无名字符数组,字符串常量本身就是一个地址printf("%p\n", "hello");输入的这个地址就是字符串常量的首地址字符串常量实质就是一段内存,用首地址来标识数组的起始地址,同时也应该注意,在内存中一个字符串的末尾包含一个字符'\0',表示字符串的结束2.给指针变量赋予字符串常量的首地址1)既然字符串常量可以看成一个无名数组,那么就可以把指向...原创 2018-07-29 01:48:05 · 1612 阅读 · 0 评论 -
指针的指针(二级指针)
1.指针类型格式:类型 *指针类型也是一种类型2.指针的指针类型格式:类型 **int ** //指向整型的指针的指针类型char ** //指向字符型的指针的指针类型float ** //指向浮点型的指针的指针类型int a = 10;int b = 20;int c = 30;int ar[3] = { &a,...原创 2018-07-29 01:49:27 · 904 阅读 · 0 评论 -
指针与常量
1.常量指针格式:类型 * const 指针名 = 变量地址值注意与指向常量的指针的格式的区别:const 类型 * 指针名 = 常量地址值与一般的指针变量的定义区别在于,在*和指针名之间多了一个const关键字;同时,还有一个区别就是,一般指针变量可以先只是声明,后面再初始化,但常量指针不行,常量指针必须在声明的同时就得初始化,同时,在初始化后再也不能改变其值int a = 3...原创 2018-07-29 20:24:31 · 247 阅读 · 0 评论 -
指针与引用
1.什么是引用引用就是给一个变量取另外一个名字,又称别名。对这个别名的任何操作就等同于对引用的那个变量的操作。也就是说,如果改变了别名的值,那个变量的值也会改变;改变了变量的值,别名的值还是会改变。同时,引用必须初始化,无空引用;已经引用了的别名,不能再去引用另外一个变量格式:类型 & 别名 = 变量名1)引用必须初始化:int a = 3;int &b; ...原创 2018-07-29 22:17:20 · 252 阅读 · 0 评论 -
指针与冒泡排序
#include <iostream>using namespace std;void BubbleSort(int *array, int length){ int *start = array; int *end = array + length - 1; for (int i = 0; i < length; i++) { for (start = ...原创 2018-07-29 23:55:34 · 618 阅读 · 0 评论