指针学习心得与理解

原创 2016年05月31日 09:07:32

  在C语言的学习过程中,指针是相当重要的一部分,学好指针对C的学习有很重要的意义。

  1. 指针和内存

如果说内存相当于街道,那么地址就相当于位于街道中房子的房号。

一个字节(8bit)包含一个地址。内存中每一个位置都包含一个独一无二的地址标识,而每一个位置都包含一个值。

注意:①区别指针变量的内容(即地址)、指针指向变量的内容、指针的地址。

      ②*p分别作为左值和右值时具有不同的意义

        *p放在“=”左边表示p指向的空间

        *p放在“=”右边表示解引用p

      ③在对指针进行初始化的时候有两种非法情况

      如:int *pa;→这是未初始化的指针,这种做法是不行的

          *pa=10;


          int *pret=fun();→这是个非法的指针,不能将一个函数直接赋给一个指针变量

          *pret=20;

2.指针常量

例:

*((int *)0x0018ff44)=20

其中0x0018ff44是一个常量,不能直接引用,需强制类型转换为一个整型地址    

改为:int a=10;

      *((int *)0x0018ff44)=30;

   此时a=30;

3.指针的指针

例:①int *p=NULL;

    int **ptr=&p;→二级指针变量存储一级变量的地址

    ②int a=10; 

     int *p=&;→想要将a的内容变成20,则可以写成*p=20或者**q=20

4.指针运算

①对于一个指针变量*p,p+n后增加的字节取决于p的数据类型,如果是一个char类型的,则增加n个字节,如果是一个int类型的,则增加n*4个字节。

②指针1-指针2之间的元素等于指针1和指针2之间元素的个数

③允许指向数组元素的指针与指向数组最后一个元素的指针进行比较,但不允许与指向第一个元素之间的内存进行比较。

例:用指针实现一个冒泡排序的函数

void bubble_sort(int arr[], int sz)
{
	int i = 0;
	int j = 0;
	int tmp = 0;
	for (i = 0; i < sz; i++)
	{
		for (j = 0; j <= sz - i - 1; j++)
		{
			if ((*arr + j)>(*arr + j + 1))
				tmp = *(arr + j);
				*(arr + j ) = *(arr + j+1);
			*(arr + j + 1) = tmp;
		}
	}

           学习初始,不足之处望指正。

      

本文出自 “福大馨” 博客,请务必保留此出处http://10800121.blog.51cto.com/10790121/1719997

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

指针下标

int *p = & ia[2]; int j = p[1];     //这边p[1]相当于是   *(p+1)  但是我们 指针 p 并不会改变原先的值,这也是和 p++ 所不同的地方 接下来...

c与指针(二)

数据(一)基本数据类型 基本数据类型有4中,整形,浮点型,指针,聚合类型(数组啊,结构体啊,自定义啊) 整型 整型有,字符,短整型,整型和长整型。这4个都是分为有符号和无符号。 (亲们,计算的...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

c与指针(三)

基本声明 格式:说明符(一个或者多个) 声明表达式列表(这个就是语法) 说明符(specifier)就是特殊的关键字.....很多说明符是表达同一个意思。这个可以百度。搜索 相等的声明 例如 s...

c与指针(一)

前言 跳过去,先看语法。说深的也看不出懂。别在这个帖子发问题。有个教学贴。 1.记住编辑器和编译器不一样。 2.c语言程序形成的过程。 源代码—>编译文件—>连接文件—>可执行程序。 3.预处...

java中的指针学习心得

在java中,object就是一个指针,它指向了一片内存地址,里面存储了object中的变量。 所以我们也可以使用这一技巧来处理指针。 下举一c中的指针例子,我们接下来把它改写成java, 首先是...

二级指针学习心得

二级指针学习心得

学习C指针的心得随笔

学习C语言的指针有一点体会,现在记录下来。如有不妥,请读者批评指正。 一、指针是什么? 我理解的指针,它本身就是一个指向变量的地址,那么根据它所指向的C语言的变量类型,指针也相应的区别为char、in...

这一次不写什么知识博客,就遇到的学习过程中的问题简要概述一下,算是给自己做个归纳总结吧

学至今日,已有一月有余,Java基础部分已告一段落,接下来就是第二阶段,就是JavaEE阶段。虽然如此般,但是感觉自己基础打得很不好,就像我写的博客一样,乱七八糟毫无头绪。目前的水平只能说我知道有这些...

近期感悟

十一前换的工作,现在刚好十月十五号了,一下子进公司也有半个多月了,之前一直是做android 手机APP开发的,现在主要做的工作是车联方面的,一开始我感觉到难度提升了不少,但是静心想一想,其实做了安卓...

叙述最近的学习心得

学了很久的C和C++了,也看了很多书,也做了不少题,感觉始终还是不能熟练的使用各种已知道的各种知识。 在知识的细节方面,感觉自己 学的差不多了,然后,经常把很多意思相近的概念或者其他的一些相似混淆一...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)