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. Pandas统计计算和描述

    Pandas统计计算和描述 示例代码: import numpy as np import pandas as pd df_obj = pd.DataFrame(np.random.randn(5,4 ...

  2. Flask之单元测试

    5.2单元测试 为什么要测试? Web程序开发过程一般包括以下几个阶段:[需求分析,设计阶段,实现阶段,测试阶段].其中测试阶段通过人工或自动来运行测试某个系统的功能.目的是检验其是否满足需求,并得出 ...

  3. c++builder 程序升级到c++builder10Seattle

    c++builder 程序升级到c++builder10Seattle的一些技巧提示. http://community.embarcadero.com/blogs/entry/migrating-l ...

  4. com线程模型01

    Coinitialize: IUnknown: apartment; 套间线程:自由线程: “假定我们需要在后台增大对某个组件的一个计数器,并偶尔需要对显示进行刷新.用一个套间线程而不是工作线程来完成 ...

  5. winform 如何正确的获取窗体的标题栏高度

    最近我需要知道鼠标在一个控件里的相对位置,鼠标相对于屏幕的位置我是可以知道的,所以只要得到控件相对于屏幕的位置,就可以算出鼠标相对于控件的位置了 但是发现有误差 后来经过测试是由于窗体的标题栏高度导致 ...

  6. 201671010127 2016—2017-2 通过一个小程序对Java的再认识。

    学习了将近四周的Java语言,对于Java语言,我也有了更进一步的理解,出于对Java语言的喜爱,我总是喜欢没事的时候,自己敲一些很简单的代码,一边学习Java语言,一边对比C语言,往往可以帮助我们更 ...

  7. MongoDB简介及基础知识

    MongoDB简介 一.MongDB是一个高性能,开源,无模式的文档型NosQL数据库.主要功能特性: 1.文件存储格式BSON(一种json的扩展) 2.模式自由,数据格式不受限了表的结构 3.支持 ...

  8. java基础之多线程四:简单案例

    多线程案例: 有一个包包的数量为100个,分别从实体店和官网进行售卖.使用多线程的方式,分别打印实体店和官网卖出包包的信息.分别统计官网和实体店各卖出了多少个包包 第一种方法 继承Thread类: p ...

  9. 使用Nuget发布自己的类库包

    NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些V ...

  10. NOIP2012摆花

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号.为了在门口展出更多种花,规定第 i 种花不 ...