#include <stdio.h> /* 指针常量 和常量指针 指向常量的指针常量 */ int main() { int a = 100; int b =200; int* const p1 = &a; int const* p2 = &a; *p1 =400;//正确 //p1 = &b; //错误:指针常量 不内改变他的地址 //*p2 = 300; //错误:常量指针不能改变单元中的值 p2 = &b; //正确 return 0; } 总结: 常量指…
1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; int const * p; 注:可以将一个常量的地址赋值给一个对应类型的常量指针,因为常量指针不能够通过指针修改内粗数据.只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象. 2.指针常量 定义:指针常量是指指针所指向的位置不能改变,即指针本身是一个常量,但是指针所指向的内容可以改变. 声明:int * const p=&a; 注…
搞不懂不吃晚饭 (1)指针常量 指针常量是一个常量,但是是指针修饰的. 格式:int * const p; 例如 int a, b; int * const p = &a;//指针常量 //分为以下两种操作 *p = 9;//操作成功 p = &b;//操作错误,指针p将一直指向a,不能再指向b 因为声明了指针常量,p代表一个指针地址,因此指针变量不允许被修改,但是指针所指向的值即*p是可以修改的.如同次指针指向一个地址,该地址不能被修改,但是地址里的内容可以被修改. (2)常量指针 如果…
指针,大概是C语言中最难理解的概念之一了.指针这个东西是C语言中的一个基本概念,C99中对于指针的定义是: 1. 指针的类型是derived from其它类型,也就是说指针的类型是由它指向的类型决定的: 2. 指针是一种reference类型,即引用类型: 指针这个词出现在高级语言程序设计中,在汇编中,就没有指针这个概念,有的只是地址.计算机的每一个内存单元都是编址的,对内存的访问都是通过地址进行的.高级语言把这些低级的硬件细节隐藏起来,程序处理的数据都存在数据对象里,数据对象在能用其间有特定的…
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指…
往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂.下面详细为大家介绍C语言中指针函数和函数指针. 1.指针函数 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中. 格式: 类型说明符 * 函数名(参数) 由于返回的是一个地址,所以类型说明符一般都是int. 在C语言中,函数也是一种类型,可以定义指向函数的指针.我们知道,指针变量的内存单元存放一个地址值,而函数指针存放的就是函数的入口地址(位于.text段).下面看一个简单的例子: #…
C++指向常量的指针和常指针 指向常量的指针 通常情况下,可以通过指针去修改指针指向的内容.但是在某些情况下,只希望通过指针去访问指针指向的内容,不想修改.比如只想通过树根结点的指针去遍历输出树中所有结点的内容,不修改.这时候就可以使用指向常量的指针,防止意外修改. 看下面的代码 const int* u; const int* u;可以读作:u是一个指针,该指针指向不能通过该指针修改的内容.重点在不能通过该指针修改的内容,也就是说u指向的内容不能通过u来修改,但是可以通过别的方法修改.看下面的…
指针数组:int *p[3] 定义一个指针数组,其中每个数组元素指向一个int型变量的地址 意思就是指针的数组,数组里面都是指针 例子: int *p[3];//定义了一个指针数组,有3个成员,每个成员都是int * int a = 1;int b = 2;int c = 3; p[0] = &a;p[1] = &b;p[2] = &c; 数组指针:int (*p)[10] 定义一个数组指针,指向int [10]类型的指针变量, 意思就是数组的指针,指向数组的指针 例子: int…
指针的一些总结   const与指针 指向const的指针指的是指针指向的数据是常量,不可以被修改,但指针变量本身可以被修改,如const int *p:严格说不能用指针间接修改指向的数据,但该变量可以通过自己本省修改.如 int a=10: const int *p=&a:则*p=9是错误的,无法被修改,但是a=9,则是正确的,可以被修改.   如有const 常量,则需用const指针来指向.   const  指针 指的是指针变量本省是一个常量,只能指向定义时所给的那个数据,而不能指向别处…
1. const指针和 指向const的指针 指向const的指针: 不允许通过指针来改变其指向的const值 const double *cptr *cptr = 42;  // error! 指针代表的值无法修改 const double pi =3.14 double *ptr = &pi //error ! 无法将指向const的指针赋值给非非const指针: const double *cptr = &pi //ok const 指针:本身值无法修改,即指针指向的地址无法修改 i…