1.使用场景

使用指针时,必须将它指向一个变量的地址或者为它分配空间方能使用,如下所示:

#include<stdio.h>
#include <stdlib.h>int main(int argc, char const *argv[])
{int a[5]={0,1,2,3,4};int *b,*d;int c=2;int *e=a; //e指向a数组首地址//*b=2;   无法直接初始化//printf("%d\n", *b);e=e+2;  //移动两个地址单元d=&c;  //d指向c的地址来表示值c=4;   //修改原c变量的值,d指针的值会发生改变b=(int *)malloc(sizeof(int));//为b分配一个int型空间来直接存储值*b=2;//分配空间后可以直接赋值了printf("this is e,b,c,d :%d %d %d %d\n",*e,*b,c,*d);return 0;
}

2.类型说明

(1)int *a :表示一个指向int型变量的指针,指向的是变量的地址单元

(2)char *b:表示一个指向char变量的指针

*a表示的是这个指针指向地址的值,a为此指针本身的地址,这点要明确,一般用*(a+1)、*(a+2)来表示值,如

int nums[5]={0,1,2,3,4};
int *a=nums;printf("%d %d %p\n",*a,*(a+1),a);

输出为:

(3)结构体指针

typedef struct node{int data;
struct node * next;
}pnode,*linklist;linklist p; p=(struct node*)malloc(sizeof(struct node)); 

p即结构体变量,它本身类型为struc node *类型,使用时,必须为它分配空间或指向此结构体对象地址方能进行下一步操作。

3.指针的运算

指针指向变量地址,若原变量的内容发生了变化,它本身也会发生变化,指针之间的运算一般为值运算和地址运算

(1)值运算:直接通过*运算方式,像a+*(a+1),结果为第一个元素与第二个元素相加。

int nums[5]={0,1,2,3,4};
int *a=nums;

(2)地址运算:通过a+i的方式.指针会指向a的下i个地址。

int nums[5]={0,1,2,3,4};
int *a=nums;
a=a+2;
printf("%d\n",*a);

结果输出2

C语言中指针的使用方法相关推荐

  1. c语言字符串加减_C语言中指针的介绍

    C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...

  2. c语言中的指针语法,C语言中指针的用法介绍

    C语言中指针的用法介绍 for(int i=0;i { num+=*s;s++; } return num; ) 这个例子中的函数 fun统计一个字符串中各个字符的 ASCII 码值之和.前面说了,数 ...

  3. 用c语言编译对数函数,在C语言中使用对数函数的方法

    在C语言中使用对数函数的方法 C语言log()函数:返回以e为底的对数值头文件: #include log() 函数返回以 e 为底的对数值,其原型为: double log (double x); ...

  4. c语言中 文件,c语言中文件的使用方法

    c语言中文件的使用方法 一.文件指针的定义 FILE *fp//注意FILE的大写 二.文件的打开 fp=fopen("(路径)文件名.文件格式后缀","文件的使用方法& ...

  5. 备忘录方法代码c语言,在C语言中操作备忘录的方法

    在C语言中操作备忘录的方法 一:fopen()中的第二参数(模式参数)的格式详解 可用来组合的字符有:r,w,a,t,+,b,它们分别代表的意义为: r: read; w: write; a: app ...

  6. 初学者对C语言中指针的爱恨情仇

    C语言中指针和数组的爱恨情仇 文章目录 C语言中指针和数组的爱恨情仇 一.前言 二.为什么学指针 三.说明 四.跟我一起学 (一)C语言中的*和& 1.C语言中为什么存在&和* 2.& ...

  7. c语言指针很危险,浅谈C语言中指针使用不当的危险性.doc

    浅谈C语言中指针使用不当的危险性.doc 第 19 卷 Vol . 19 第 2 期 No . 2 洛阳师专学报 Journal of Luoyang Teachers College 2000 年 ...

  8. go语言字符串换行_Go语言中的字符串处理方法示例详解

    1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号(" ...

  9. C语言FILE指针的使用方法

    C语言FILE指针的使用方法 文章目录 C语言FILE指针的使用方法 一.FILE指针 1.定义 2.文件类型分类 3.文件打开方式 4.文件打开 5.文件关闭 二.文件读写函数 1.单字节的输入输出 ...

最新文章

  1. 有时抄个1000词,有时自己发挥,新研究揭示GPT到底是怎么写作文的
  2. Apr.2010 Microsoft MVP连任
  3. 微信自定义tabbar有小红点_自定义微信小程序tabBar组件上边框的颜色
  4. Python开发中收集的一些常用功能Demo
  5. 直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法
  6. knn的python代码_详细的的KNN代码——python实现
  7. asp功放怎么装_客厅家庭影院该怎么摆放?
  8. 利用idea构建hibernate
  9. liunx中查看安装软件和卸载软件和启动程序
  10. dota2 服务器尚未更新到最新版本,dota2更新不动_steam dota2更新不动
  11. Java中 ? extends T 和 ? super T 的理解
  12. python运行invalid syntax_Python 各种运行错误(如:SyntaxError :invalid syntax)
  13. exdoll机器人_打造国内领先的定制化人工智能机器人品牌, EXDOLL新品惊艳亮相...
  14. 用php编写一个函数_使给定的一个二维数组(3×3)转置,写一个函数 使给定的一个3x3的二维数组转置,即行列互换...
  15. Elasticsearch APIs解析(一、API规范及约定)
  16. Google大神每天写多少行代码?真相让你吃惊!
  17. 【纪中受难记】——Day21:调整心态
  18. 青龙新毛----快音
  19. 全方位理解「元宇宙」:一切才刚刚开始
  20. 蓝桥杯求100阶乘的正约数

热门文章

  1. oracle 查询每组条数,Oracle SQL查询:根据时间检索每组的最新值
  2. android 使用以太网共享4g网络_案例 | 东土科技Aquam系列重新定义列车骨干网络!...
  3. 【小白学习keras教程】二、基于CIFAR-10数据集训练简单的MLP分类模型
  4. 工程制图 (机件常用的基本表示法)
  5. 今日arXiv精选 | 14 篇 ICCV 2021 最新论文
  6. AAAI 2021 | 关键词指导的神经对话模型
  7. 实用教程:如何制作学术会议Oral/Spotlight Video?
  8. FastDFS 学习笔记
  9. oracle成本岗,ORACLE的成本管理.doc
  10. thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)