c语言的指针的存在使得c语言对硬件的操控,以及灵活性得到了极大的提高。

但是指针的使用存在着很多难点问题。

#include<stdlib.h>
#include<stdio.h>
//这里的函数是指针做参数的例子,要知道这个特性可以弥补c语言只能有一个返回值的特性。
void swap1(int *pa,int *pb){
int t =*pa;
*pa=*pb;
*pb=t;
}
//main()函数必须要返回一个数字
int main(){
int a =;
int b=;
int* t;
t=&b;
a=b;
b=*t;
printf("%d\n",b);
swap1(&a,&b);
printf("%p\t%p",a,b);
return ;
}

这里我们先定义两个整型的变量a,b

然后再定义一个临时的指针变量,用来存储中间变量

然后将b的变量的内存地址赋值给t,注意这里 t  代表的是内存地址

然后把b的值给a,再用b接受t地址所存储的变量, 注意这里的*t是指t这个地址所指的那个变量。

指针与数组

其实数组的int a[10];

里来说a其实是这个数组的第一个元素的a[0]的指针

所以数组变量本身就是表达地址,所以

   int a[];
int *p=a; //无需用&取地址 但是数组的单元表达的是变量,需要用&取地址
a==&a[]; []运算符可以对数组做,也可以对指针做: p[] <==>a[];
这里的p[]相当于*p *a可以表示a[] 数组变量是const的指针

const 这个修饰符的作用就是表明一个变量是指定的值不能改变了

int* const p=&i; //p是const

*q=;//OK
q++; //ERROR
   int ls=;
int ls1=;
int* const q=&ls;
*q =;
*q=;
// q = &ls1; 这句是不能通过编译的,因为这个指针是不能指向其他位置的地址
//执行成功说明这里的指针变量是可以被改变的
ls= ;
printf("\n%d",*q);
//然后我们来看另外一种情况
int P1=;
int P2=;
int const *T=&P1;
T=&P2;//执行结果为30
//*T =15;这里是不能通过编译的,因为这个指针指向的位置存储的变量是不能赋值改变的。
P2=;
printf("\n%d",*T);
//关键在于这里的const是在*的前面还是后面决定的
return ;
 void mai(const int*p){

        int *ls=*p;
printf("ls的地址:%p",ls);
}
这里我们传入了一个指针,但是在函数里,是不能改变这个指针所指向的值的

 指针的运算

 #include<stdio.h>
#include<stdlib.h> int main(){
int i,j;
i=;j=;
printf("i,j:%d,%d\n",&i,&j);
printf("i,j:%d,%d",*&i+,&j);
printf("\n&i-&j:%d",(&i)-(&j));//这里两个地址做差其实是地址差/类型所占的位数 int *p;
p=&i;
*p++;//实际上是*(p++);++优先级比*高;数组遍历
printf("\n*p:%d",*p);
return ;
}

指针的类型转换

void*表示不知道指向什么东西的指针

指针变量的大小是相同的但是,指针是有类型的差别

总之指针的作用

、需要传入较大的数据的时候用做参数
、传入数组后对数组做操作
、函数返回的结果不止一个的时候可以用指针带出(c只能return一个变量,或者值)
需要要用函数来修改不止一个变量
、动态申请内存.......

具体的后续会更。

c语言指针的简单实例的更多相关文章

  1. 程序演示:C语言第一个简单实例

    在信息化.智能化的世界里,可能很早很早 我们就听过许多IT类的名词,C语言也在其中,我们侃侃而谈,到底C程序是什么样子?让我们先看简单的一个例子: 1 2 3 4 5 6 7 8 9 #include ...

  2. Go 语言指针

    Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务. 接下来让我们来一步步学习 Go 语言指针. 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址. Go 语言 ...

  3. GO语言学习(十五)Go 语言指针

    Go 语言指针 Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务. 接下来让我们来一步步学习 Go 语言指针. 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地 ...

  4. C语言-指针

    C指针基础知识 C语言中,指针无疑是最令人头疼的.今天无事就来学学C语言的指针,在此留下点笔记,仅供个人参考. 首先要搞懂的是,指针是什么? 指针:是用来存放内存地址的变量. 不管是什么类型的指针,存 ...

  5. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  6. [转]C语言指针学习经验总结浅谈

    指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...

  7. 【转载】ANSYS的APDL与C语言混合编程(实例)

    原文地址:http://www.cnblogs.com/lyq105/archive/2010/05/04/1727557.html 本文讨论的不是利用C语言为ANSYS写扩展(或者说是用户子程序), ...

  8. C语言指针学习

    C语言学过好久了,对于其中的指针却没有非常明确的认识,趁着有机会来好好学习一下,总结一下学过的知识,知识来自C语言指针详解一文 一:指针的概念 指针是一个特殊的变量,里面存储的数值是内存里的一个地址. ...

  9. Docker初步认识安装和简单实例

    前话 问题 开发网站需要搭建服务器环境,FQ官网下载软件包,搭建配置nginx,apache,数据库等.官网没有直接可用的运行版本,担心网络流传的非官方发布软件包不安全还得自行编译官方源码安装,忘记步 ...

随机推荐

  1. select,poll,epoll,selectors

    一 了解select,poll,epoll IO复用:为了解释这个名词,首先来理解下复用这个概念,复用也就是共用的意思,这样理解还是有些抽象, 为此,咱们来理解下复用在通信领域的使用,在通信领域中为了 ...

  2. Java之常用类及方法

    下面我们介绍Java类库所提供的常用类及类的常用方法 一.java.lang.String 1. String类常用的构造函数 public String(String original) 使用串对象 ...

  3. JAVA的FileOutput/InputStream使用实例

    在JAVA中,要读写文件,要使用Stream这个东西. Stream简单来说,可以看做在程序和文件之间打开了一个管道,然后把数据通过这个管道输送到文件或程序中去. FileOutput/InputSt ...

  4. 201671010127 2016-2017-8 回谈static修饰符

    上周学了泛型程序程序设计技术,再一次接触到了静态方法,那么今天就来谈一下static修饰符. static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块, ...

  5. php学习第一天-勤劳致富

    所谓“勤劳致富”,是很有科学依据的,且是经过我的亲身实践的. 自毕设突然转变为开发项目之后,整个天都变了.先是妹子给我订的票被强行取消,然后又是师兄的一句“***一小时就搞定了”,说明一下这个***是 ...

  6. Gym 101128A :Promotions (Southwestern Europe Regional Contest )

    题意 一个公司里有E个员工P个上下级关系.这个公司有一种晋升制度.如果要晋升员工a,那么必须要先晋升a的所有领导.给出一个区间[A,B],如果要晋升A个员工,有哪些员工是一定会被晋升的?如果要晋升B个 ...

  7. 张超超OC基础回顾_05 property修饰符,id类型,instancetype。。。

    一.property 如果给一个属性同时提供了getter/setter方法, 那么我们称这个属性为可读可写属性 如果只提供了getter方法, 那么我们称这个属性为只读属性 如果只提供了setter ...

  8. IDEA03 连接数据库、自动生成实体类

    1 版本说明 JDK:1.8 MAVEN:3.5 SpringBoot:2.0.4 IDEA:旗舰版207.2 MySQL:5.5 2 利用IDEA连接数据库 说明:本案例以MySQL为例 2.1 打 ...

  9. 581. Shortest Unsorted Continuous Subarray连续数组中的递增异常情况

    [抄题]: Given an integer array, you need to find one continuous subarray that if you only sort this su ...

  10. Hadoop对数据仓库的影响

    转载http://www.dwway.com/portal.php?mod=view&aid=9065 在过去三年,Hadoop生态系统已经大范围扩展,很多主要IT供应商都推出了Hadoop连 ...