![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针
文章平均质量分 58
a小菜a
这个作者很懒,什么都没留下…
展开
-
【指针】何为指针及优缺点
什么是指针?指针最为简短的定义:指针即为内存的地址。那什么是内存呢?举个栗子:当我们计算 4*(46+4)时,我们人脑会想到先有个中间值 50 然后再计算成 200,计算机也会这样有一个 50 的中间值,我们人脑在计算的时候 50 这个中间值保存在我们的万能的脑子中,计算机在出现最终答案前也会把这个中间值一个方便它进行下一步计算的地方,这地方就是内存。实际上我们写程序的时候定义的所有变量都保存在内存中, 可以想象一个大的程序所占用的内存是不容小觑的,在计算机刚被制造出来的时候那些大佬是如何节省原创 2021-08-24 22:10:41 · 2642 阅读 · 1 评论 -
【指针进阶完结篇】指针和数组的笔试题解析(内存与图解)
sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。除此之外所有的数组名都表示首元素的地址。一维数组#include<stdio.h>#include<string.h>int main() { int a[] = {1,2,3,4};//4*4 = 16 printf("%d\n",sizeof(a)); //16 -sizeof(数组名)-计算的是数组...原创 2021-07-25 18:23:32 · 291 阅读 · 3 评论 -
【指针进阶08】回调函数
回调函数一个通过函数指针调用的函数回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的, 用于对该事件或条件进行响应。code1#include<stdio.h>void print(char* str){ prinft("hehe:%s", str);}void test(void(*p)(char*)){ printf("test\n"); p("bit");}int main(){ test(pr原创 2021-08-18 20:47:39 · 111 阅读 · 2 评论 -
【指针进阶07】指向函数指针数组的指针
回顾1.数组指针int arr [10] = { 0 };int ( * pa ) [10] = &arr;p是一个指向整型数组的指针。2.函数指针数组int ( * pf) ( int , int )int ( * pfArr [4] ) ( int , int );pfArr是一个数组 - 函数指针的数组指向函数指针数组的指针指向函数指针数组的指针是一个指针, 指针指向一个数组,数组的元素都是函数指针;int ( * ( * ppfArr ) [4]) ( int原创 2021-08-18 10:17:35 · 518 阅读 · 0 评论 -
【指针进阶06】函数指针数组
函数指针数组把函数的地址存到一个数组中,那这个数组就叫函数指针数组;int ( * parr1 [10] ) ( );parr1先和 [ ] 结合,说明parr1是数组,数组的内容是什么呢?是 int(*)() 类型的函数指针。这个还是很好理解的。code1用函数指针数组存放函数int Add(int x, int y)//int(*)(int,int){ return x + y;}int Sub(int x, int y){ return x - y;}i原创 2021-08-18 09:48:06 · 2040 阅读 · 0 评论 -
【指针进阶05】函数指针
函数指针是指向函数的指针 - 存放函数地址的一个指针int ( * ) ( int , int )看代码code1#include<stdio.h>int Add(int x,int y){ return x + y;}int main(){ int a = 10; int b = 20; int(*pf)(int, int) = &Add; printf("%d\n", pf(2, 3)); printf(原创 2021-08-17 10:28:42 · 113 阅读 · 0 评论 -
【指针进阶04】数组传参和指针传参
前言在写代码的时候难免要把【数组】或者【指针】传给函数,那函数的参数该如何设计呢?数组传参一维数组传参两种形式 - - - 传值和传址void test(int arr[]) {} void test(int arr[10]) {} void test(int* arr) {} void test2(int* arr[20]) {}原创 2021-08-16 21:49:48 · 274 阅读 · 0 评论 -
【指针进阶03】指针数组
前言本章东西不多,非常容易,主要以举例,练习为主。指针数组- - 是数组,用来存放指针的int arr[10] = { 0 };//整型数组char ch[5] = { 0 }; //字符数组int* parr[4]; //存放整型指针的数组 -- 指针数组char* pch[5]; //存放字符指针的数组 -- 指针数组code1#include<stdio.h>int main(){ int a = 10; int b = 20;原创 2021-08-15 20:21:59 · 77 阅读 · 0 评论 -
【指针进阶02】数组指针
前言回顾上一章字符指针可以发现不同指针间的区别int *p=NULL; p 是整型指针 - 指向整型的指针 - 可以存放整型的地址char *pc=NULL; pc是字符指针 - 指向字符的指针 - 可以存放字符的地址数组指针 – 指针数组指针 - 指向数组的指针 - 存放数组的地址数组指针的组成char* arr[5];char* (*pa)[5] = &arr;// char *:pa指向的数组的元素类型是char// pa : 指针变量的名字// *原创 2021-08-14 22:41:04 · 148 阅读 · 1 评论 -
【指针进阶01】字符指针
字符指针指向字符型数据的指针变量。每个字符串在内存中都占用一段连续的存储空间,并有唯一确定的首地址。即将字符串的首地址赋值给字符指针,可让字符指针指向一个字符串。话不多说,直接上代码test1int main(){ char ch = 'w'; char * pc = &ch; const char* p = "hello bit";//"hello bit"是一个常量字符串 printf("%s\n", p); printf("%c\原创 2021-08-13 22:10:08 · 126 阅读 · 0 评论