首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C-指针进阶知识

    C-指针进阶知识 数组指针 int p1; int p2[5]; int* p3[5];// int (*p4)[5] = p3;//数组指针 *与变量名p结合的优先程度是最弱的, * 会优先与前面的类型参数进行结合...= &add1; //add2是一个函数指针,所以add2用来承接一个函数的地址(函数取地址了) void (* test)()的test 不等于 void* test()的test 前者test是一个指向返回值为空...(int, int)类型的指针,即指向返回值为空、两个参数为int的函数。...void*可以直接和其他类型的指针比较存放的地址值是否相同 当要使用void*的时候,必须要进行强制类型转换,否则不知道这个指针究竟是什么类型的 这里要补充的是,承接和使用不同,一个是被赋值,一个是用与进行操作...,可以通过NULL或nullptr来初始化,表示一个空指针 NULL和nullptr的区别,请见“编程日志”的C++目录下的“NULL和nullptr的区别”C++_NULL和nullptr的区别 当void

    9710

    c-指针数组、二级指针、数组指针

    数组元素是指针类型的数组就称为指针数组。 指针数组的每一个元素都是指针变量。定义形式:类型名 *数组名[数组长度],如:int *p[10]。...二级指针,是指向另一个指向目标值的指针,也就是指向指针的指针。这个概念也叫做“多级间址”,或“多级间接地址(multiple indirection)”。普通指针的值是含预期值变量的地址。...,即二级指针 //给指针数组p赋值,让指针数组的每个元素都指向数组a中元素的内存地址 for(i=0;i<5;i++) p[i]=&a[i];...//p[i]是指向a中元素的内存地址,*为取值运算符,则对该地址存储的数值进行取值 for(i=0;i<5;i++) printf("%d",*p[i]);...前者是一个指针,它指向一个含有5个元素的数组。后者是一个数组(其元素是指针),它的长度为5,数组中每一个元素指向一个整形变量。 看完本文有收获?请转发分享更多人

    90530

    字符指针 赋值

    对于语句 char *a=”hello”; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式”*a”所指向的地址。...但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。...即正确顺序是:1.分配内存给字符指针;2.分配内存给字符串;3.将字符串首地址赋值给字符指针; 这里有两点需要考虑清楚的地方: ①*a只是指向一个字符。举例如下: [c++] 1....输出字符串:bcd*/ ② 若字符串常量出现在在表达式中,代表的值为该字符串常量的第一个字符的地址。所以”hello”仅仅代表的是其地址。...问:一直理解不了为什么可以将字串常量赋值给字符指针变量 答: 双引号做了3件事: 1.申请了空间(在常量区),存放了字符串 2.

    51320

    【C++】函数重载 ③ ( 为函数指针赋值重载函数 )

    a, int b) { return a + b; } 可以将 add 直接赋值给函数指针 , 也可以先使用 & 符号获取 函数地址 &add , 然后再赋值给函数指针 ; // 定义 函数指针...二、为函数指针赋值重载函数 ---- 1、为函数指针赋值重载函数 对 函数指针 进行赋值时 , 直接将 函数名 赋值给了 函数指针 ; 如 下面的代码中 , 直接将 add 函数赋值给了 函数指针 func_ptr...int (*func_ptr)(int, int) 代码 , 定义的 函数指针 有 2 个 int 类型的参数 , 有 1 个 int 类型的返回值 ; 为该函数指针 赋值 add 函数 时 , 就会自动...查找 参数列表是 2 个 int 类型的函数 , 如果没有找到 , 就会编译失败 , 如果找到了 , 为函数指针赋值成功 ; 2、代码示例 - 为函数指针赋值重载函数 完整代码示例 : // 包含 C..., 将函数地址赋值给 函数指针 // 对函数指针进行赋值时 , 会根据函数指针的类型匹配 add 函数 // 显然会匹配到 int add(int a, int b) 函数的地址 int (*

    30310

    C-二级指针的作用

    C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针。 1. 当不用指针时,参数传入子函数的过程为值传递,子函数中修改的局部变量的值对原来的实参并没有影响。 2....当用一级指针时,参数传入子函数的过程为地址传递, 子函数的实际操作是对指针的操作,那就可以通过子函数中对于实参指针的修改达到修改实参的值的目的。 我们通过传递指针来达到修改一个值的目的。...那么当你需要修改一个指针的时候 呢,这个时候我们就需要指针的指针(二级指针): 3....p为一个指针,&p就是指向指针p的一个指针(二级指针), 通过把&p传递给init1()函数,此时二级指针a=&p,所以说a是指向指针p的一个指针。...那么对于*a的操作,实际上就是对于指针p的操作,达到了修改指针的目的,这样fun()就可以通过init1()函数来分配内存空间了。

    1.2K20

    空指针,野指针,万能指针

    空指针 int * p=NULL; 空指针指向地址编号为0的地址,不可以访问空指针指向的内容,因为内存地址编号0~255之间被系统占用,不可以访问 但是可以printf("%d",p);,输出p指向的地址...野指针 int *p=0xffff; 指针变量指向非法的内存空间,或指针变量为初始化也属于野指针 万能指针 void 无类型指针称为万能指针* 万能体现在:void*可以保存任意数据类型指针的地址...#include void test() { //万能指针 void* p = NULL; int num = 10; p = # //void *不可以直接解引用,...* p2 = NULL; char* p3= NULL; //char类型指针赋值给int类型指针要进行强制类型转换,否则会报错 p2 =(int*)p3; //void*不用强转,也不会发出警告...//因为void*可以保存任意数据类型指针的地址 p1 = p3; } int main() { return 0; }

    1.4K10

    CCPP 指针变量 | 数组指针 | 指针数组 | 野指针 | 空指针

    普通变量可以不赋初值,但是指针变量的初值必须万分慎重,因为未来的*操纵会以这个初值为目标内存地址,往里面读写数据(可以才C primer plus中看到相应分析) 所以给指针变量赋值一定要是合法合理的内存地址...空指针和野指针 野指针:定义了一个指针变量,如果没有进行初始化,系统就会有可能随机赋值一个地址给这个指针变量,也就是说,这个指向指向一个未知的区域。...空指针:空指针不是指向常数0,只指向地址0,即NULL,其实换句话说,指针的本质就是地址嘛,空指针就是指针本身的值(地址)为0空指针的作用是防止野指针的出现,因为我们不能知道野指针到底指向哪里,所以我们也无法判断一个指针是否是野指针...,这样很危险,但如果养成将指针初始化为空指针的习惯,我们就能判断出这个指针是不是有效的(判断是不是NULL就可以了)通用指针一般都用在函数传参,实现所谓的“多态”,但到函数里面使用时,一般还是被转换成具体类型的指针...如要将二维数组赋给一指针,应这样赋值: int a[3][4]; int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。

    1.7K30

    空指针的传说

    空指针,号称天下最强刺客。 他原本不叫这个名字,空指针原本复姓异常,空指针只不过是他的武器,但他杀戮过多,渐渐地人们只记住了空指针这三个字。...我打听了很久,原来空指针是异常组织的三代嫡传,异常组织是这个世界上最恐怖的杀手组织,空指针就是异常现在最出色的刺客。...听说空指针出生的时候,脖子上就挂着一根针,整个 Java 大陆雪下一月不停,Linux 森林多块陆地直接沉陷,于是他的父亲 RuntimeException 就给他起了空指针这个名字。...空指针出生的天生异象也引起了异常组织高层的注意,听说他的祖父 Exception,还有整个异常组织的领军人物 Throwable 都亲自接见了空指针,并且认为空指针天赋异禀,未来可期。...”那我就直说了,我想知道空指针在哪里。“ ”空指针就在皇宫轮值,你找他干嘛?“ ”我暂时不能说“ ”呵呵,你就不好奇我为什么知道你,为什么又把你带过来?“ ”好奇,可是我就是不想问。

    72220

    空指针的传说

    空指针,号称天下最强刺客。 他原本不叫这个名字,空指针原本复姓异常,空指针只不过是他的武器,但他杀戮过多,渐渐地人们只记住了空指针这三个字。...我打听了很久,原来空指针是异常组织的三代嫡传,异常组织是这个世界上最恐怖的杀手组织,空指针就是异常现在最出色的刺客。...听说空指针出生的时候,脖子上就挂着一根针,整个 Java 大陆雪下一月不停,Linux 森林多块陆地直接沉陷,于是他的父亲 RuntimeException 就给他起了空指针这个名字。...空指针出生的天生异象也引起了异常组织高层的注意,听说他的祖父 Exception,还有整个异常组织的领军人物 Throwable 都亲自接见了空指针,并且认为空指针天赋异禀,未来可期。...”那我就直说了,我想知道空指针在哪里。“ ”空指针就在皇宫轮值,你找他干嘛?“ ”我暂时不能说“ ”呵呵,你就不好奇我为什么知道你,为什么又把你带过来?“ ”好奇,可是我就是不想问。

    76110
    领券