const指针,指向const的指针,指向const的const指针 -- C

int
main()
{
	//记忆方法:中间加个"是"字变得很好理解

	/*	指针函数 */
	void * f();
	//按顺序写,先写指针(void *),再写函数(f())
	//指针是函数 -- 这个指针是一个函数。

	/*	函数指针 */
	void (* f)();
	//函数是指针 -- 这个函数是一个指针。

	//暂时没想到怎么记忆。

	/* const 指针 */
	const int * a;

	/* 指向 const 的指针 -- 指针 const*/
	int * const b;

	/* 指向 const 的 const 指针 */
	const int * const c;

}

const指针,指向const的指针,指向const的const指针 -- C

时间: 2024-10-06 11:48:10

const指针,指向const的指针,指向const的const指针 -- C的相关文章

【03】指针、返回值、成员函数的const

1 // 2 // 2015-03-05 03/55 3 // 指针.返回值.成员函数 之 const 4 // 5 6 #include <iostream> 7 #include <string> 8 9 using namespace std; 10 11 // ------------------------------ 12 // 1. 指针的const 13 // ------------------------------ 14 const char *p1 = &q

指针初级(定义, 初始化, 重指向, 注意事项)

大家好, 今天我们来学习C语言中的指针. 可能大家都听过这么一句话: C语言中其它我学得都很好, 就是指针这一块学得不是太明白, 那么你不如告诉我你没有学过C语言. 这么一句话突出了指针这个概念在C语言当中的重要性. 还有的同学说, 我听别从说C语言当中的指针好难, 特别难理解, 很难学会.那么我告诉大家的是, 指针没有什么难的地方, 那只是你们潜意识这么认为的, 通过今天这节课的学习, 我相信大家都能学会指针, 并且会用指针. 好, 下面开始指针的学习. 在学指针之前, 我先给大家普及一下,

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点).class Solution { public: void CloneList(RandomListNode* pHead){ RandomListNode* cur = pHead; RandomListNode* temp = NULL; while(cur != NULL){ temp = new RandomListNode(0); temp->label = cur->label

C语言:十九 程序找错 结构体内的指针使用前要确定指向

程序一:struct student{char *name;int score;} stu,*pstu; int main(){strcpy(stu.name,"Jimy");stu.score = 99;return 0;}问程序有何错误? 答:错误在于struct中只是定义了指针name,并未分配空间的情况下就strcpy.应在main中strcpy之前加上:stu.name=(char*)malloc(sizeof(char)*某数) 程序二:int main(){pstu =

const基础知识、const在C++和C中的异同、const与#define宏定义的异同

1.const基础知识 (1)用const定义常量 const int a = 5;   //定义了一个int型常量a,其值为5 (注:在C++中将其存储在符号表中(key,value),并不分配内存空间,只有在取地址或者定义为全局变量在其他文件中使用时才分配内存空间) (2)const与指针 1 const int* p1 = &a; //p1是指向常量a的指针,a的值不能通过指针p1改变 2 3 int* const p2 =&b; //p2是只能指向b的指针,b的值可以通过p2改变

Effective STL 第7条:如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉

STL中的容器相当"聪明",它们提供了迭代器,以便进行向后和向前的遍历(通过begin.end.rbegin等):它们告诉你所包含的元素类型(通过它们的value_type类型定义):在插入和删除的过程中,它们自己进行必要的内存管理:它们报告自己有多少对象,最多能容纳多少对象(分别通过size和max_size):当然,当它们自身被析构时,它们自动析构所包含的每个对象. 有了这么"聪明"的容器,许多程序员不再考虑自己做善后清理工作.更糟糕的是,他们认为,容器会考虑为

&lt;26&gt;【了解】10-函数指针概念及定义+【掌握】11-函数指针使用+

[了解]10-函数指针概念及定义 函数指针变量 存放函数的首地址的指针变量就是函数指针变量 函数指针变量的定义 返回值类型 (*变量名)(函数的参数); 函数的声明: int sum(int a,int b);----> 函数指针 int (*p1)(int a,int b); //定义了一个函数指针 p1 //p1可以存放 返回值是int类型,并且有两个形参,形参的类型还都是int类型的函数的地址 //函数指针的初始化 p1 = sum; //sum存的就是函数在内存中的首地址 #includ

C++ Primer 学习笔记_35_面向对象编程(6)--虚函数与多态(三):虚函数表指针(vptr)及虚基类表指针(bptr)、C++对象模型

C++ Primer 学习笔记_35_面向对象编程(6)--虚函数与多态(三):虚函数表指针(vptr)及虚基类表指针(bptr).C++对象模型 一.虚函数表指针(vptr)及虚基类表指针(bptr) C++在布局以及存取时间上主要的额外负担是由virtual引起的,包括: virtual function机制:用以支持一个有效率的"执行期绑定": virtual base class:用以实现多次在继承体系中的基类,有一个单一而被共享的实体. 1.虚函数表指针 C++中,有两种数据

【C语言学习】指针再学习(二)之数组的指针

★一维数组 一个整型数据为4个字节.4个字节就是32位,即可以表示2^32个数字 在程序中定义一个数组a[5] = {1,2,3,4,5}; 那么a[0]的地址就是0x00000000,数组名a是数组首元素的地址,a的地址也是0x00000000.a+1则表示的地址是0x00000004,而不是0x00000001.因为1这个值,根据前面的指针a所指向的类型的长度来调整自己的长度.也就是说如果a是指向整型的指针,那么后面加的1也表示4个字节,如果a是指向字符型的指针,那么后面加的1表示1个字节.

函数指针及其的运用(上)——何为函数指针

=========================引子========================= 我们都知道,数组名就是指向数组第一个元素的常量指针(详见<数组拾遗>).同理,对于一个函数而言,函数名也是指向函数第一条指令的常量指针.而编译器要做的就是在程序编译之后,为每个函数分配一个首地址,即该函数第一条指令的地址.一般情况下,我们可以用一个指针来保存这个地址,而这个指针就是函数指针,该指针可以看作是它指向函数的别名,所以我们可以用该指针来调用这个函数. ==============