0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学好指针对C语言的学习有很重要的意义

j4AI_wujianying 来源:未知 作者:胡薇 2018-04-16 14:35 次阅读

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

指针和内存

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

一个字节(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之间元素的个数

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

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

voidbubble_sort(intarr[],intsz)

{

inti=0;

intj=0;

inttmp=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;

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72752
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128429
  • 指针
    +关注

    关注

    1

    文章

    473

    浏览量

    70361

原文标题:C语言指针的学习

文章出处:【微信号:wujianying_danpianji,微信公众号:单片机精讲吴鉴鹰】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言学习

    请教一下,是不是C语言学不好,就不能把单片机学习好,而且C语言中的数组是不是很重要呢,我不是特别
    发表于 01-21 23:53

    学习C语言的用途~

    ,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的
    发表于 05-03 16:06

    [转]如何学好C语言

    按照C99标准学习。还有一本《C指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调
    发表于 03-12 09:06

    学习c语言的书分享!

    (一)C语言学习系列一之C语言基础学习篇(2013-07-31)(1)《C
    发表于 10-12 02:42

    对PLL电路学习和设计很重要的参数哪些

    对PLL电路学习和设计很重要的参数
    发表于 12-29 06:48

    c语言指针详解

    精练而高效的程序。指针极大地丰富了C语言的功能。学习指针学习
    发表于 03-26 09:51

    C语言这么重要,那需要达到什么水平呢?

    C语言本身是很容易入门的语言,可以深入底层,直接操作内存,其最精华的部分就是指针,所以非常高效上述这些特点自然就是嵌入式行业的首选语言,我记
    发表于 07-15 07:56

    2.5 C语言入职例程二:指针 精选资料分享

    2.5.1 强化指针概念指针C语言中最基本且很重要的概念,某种程度上甚至可以说:指针
    发表于 07-19 08:01

    c语言为什么要用指针

    c语言为什么要用指针C语言到底重不重要? 大学考C
    发表于 07-20 08:04

    如何学习C++,如何学好C++

    最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++?那么作为一个从C语言小白摸爬滚
    发表于 08-20 06:27

    关于嵌入式C语言指针学习笔记

    这段时间快马加鞭学习嵌入式C语言,在此留点关于指针的笔记最普通的指针:int *a;调用形式:1、a——a指向的对象的地址2、a——a指向的
    发表于 12-14 08:27

    指针快速如何快速入门

    不大。我想这里二方面的原因:(1) 很重要,不要觉得任何一门语言简单的语法就不去敲代码,你要相信,代码敲的多了你的水平也就上去了。(2) C语言
    发表于 12-15 07:35

    通俗易懂关于C语言数组与指针的讲解

    很好的学习。  反而嵌入式培训班C语言到了讲数组,学生们却运用的很溜,针对于这种情况,我改变了我实训的方式,凡是涉及到指针方面的问题,尽量用
    发表于 12-15 09:06

    C语言运行时需要和栈的意义

    嵌入式-ARM-学习总结(3):汇编启动,设置栈,调用C语言一、C语言运行时需要和栈的意义1.栈
    发表于 12-20 07:11

    基于C语言中指针的基本用法解析

    我C语言中其它的知识都学得可以,唯独指针搞不懂。如果是这样,我可以很负责的告诉你,对于这门编程语言,你等于是没学。所以学好指针对于初学者是非
    的头像 发表于 01-09 15:12 4592次阅读