C语言 指针 p++ / p-- - C语言零基础入门教程

目录

  • 一.变量 i++/i–
  • 二.指针 p++/p–
    • 1.通过下标访问数组元素
    • 2.通过指针偏移访问数组元素
  • 三.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.变量 i++/i–

在前面的文章 自加自减运算符(++ i /i ++) 中介绍了关于变量自增和自减的运算,举个例子:

int x = 10;
x++;  //等价 x = x + 1 = 11
++x;  //等价 x = x + 1 = 12
--x;  //等价 x = x - 1 = 11
x--;  //等价 x = x - 1 = 10

++/后++的区别:

--/后--的区别:

二.指针 p++/p–

指针: 指针相当于一个变量,它存放的是变量在内存中的地址,是十六进制类型,它可以指向任意类型的数据。

**数组:****数组在内存中是连续存放的,开辟一块连续的内存空间**。数组是根据数组的下标进行访问的,多维数组在内存中是按照一维数组存储的,只是在逻辑上是多维的。

1.通过下标访问数组元素

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 指针 p++ / p–
//@Time:2021/06/16 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include<stdlib.h>
#include<stdio.h>
void main()
{int arr[5] = { 10,20,30,40,50 };int len = sizeof(arr) / sizeof(arr[0]); //获取数组长度for (int i = 0;i<len;i++){printf("arr[%d] = %d\n", i, arr[i]);}system("pause");
}
/*
输出:
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
请按任意键继续. . .
*/

2.通过指针偏移访问数组元素

指针作为一个变量,肯定有自己的地址,占位符使用 %p 或者 %x ;

int *p = 10;
printf(" p : %p",p);// 输出地址:004FF798

**指针作为一个变量,肯定有自己的值,占位符使用 %d ,取指针的值需要在指针变量前面加上 * ,否则是取指针的地址,**例如:

int *p = 10;
printf(" p : %d",*p);// 输出值: 10
printf(" p : %p",p); // 输出地址:004FF798

数组在内存中是连续存放的,所以可以通过指针偏移来访问数组,例如:

int arr[5] = { 10,20,30,40,50 };
int *p = arr; //等价 *p = arr[0];
int value1 = *p++; // int value1 = arr[1];
int value2 = *p++; // int value2 = arr[2];
int value3 = *p++; // int value3 = arr[3];
int value4 = *p++; // int value4 = arr[4];

在上面的例子中,通过指针 p 指向数组 arr ,默认指针 p 指向数组的第一个元素 arr[0],通过 *p++ 偏移来获取数组每一个元素对应的值,通过指针偏移来变量数组,举个例子:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 指针 p++ / p–
//@Time:2021/06/16 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include<stdlib.h>
#include<stdio.h>void main()
{int arr[5] = { 10,20,30,40,50 };int* p = arr;  //定义一个空指针int len = sizeof(arr) / sizeof(arr[0]);//计算数组长度for (int i = 0; i < len; i++){//&arr[0]:表示取arr[0]元素的地址printf("根据下标索引值循环:数组下标:%d 对应的元素地址是: %d 对应的元素的值是: %d\n", i,&arr[i],arr[i]);}printf("\n");for (int i = 0;i<len;i++){// p:是一个地址//*p:取p对应地址的值printf("根据指针偏移循环:数组下标:%d 对应的元素地址是: %d 对应的元素的值是: %d\n", i, p, *p);p++; //地址偏移+1,等价偏移到下一个元素地址}system("pause");
}
/*
输出:
根据下标索引值循环:数组下标:0 对应的元素地址是: 561904944 对应的元素的值是: 10
根据下标索引值循环:数组下标:1 对应的元素地址是: 561904948 对应的元素的值是: 20
根据下标索引值循环:数组下标:2 对应的元素地址是: 561904952 对应的元素的值是: 30
根据下标索引值循环:数组下标:3 对应的元素地址是: 561904956 对应的元素的值是: 40
根据下标索引值循环:数组下标:4 对应的元素地址是: 561904960 对应的元素的值是: 50
根据指针偏移循环:数组下标:0 对应的元素地址是: 561904944 对应的元素的值是: 10
根据指针偏移循环:数组下标:1 对应的元素地址是: 561904948 对应的元素的值是: 20
根据指针偏移循环:数组下标:2 对应的元素地址是: 561904952 对应的元素的值是: 30
根据指针偏移循环:数组下标:3 对应的元素地址是: 561904956 对应的元素的值是: 40
根据指针偏移循环:数组下标:4 对应的元素地址是: 561904960 对应的元素的值是: 50
请按任意键继续. . .
*/

三.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. C 语言格式控制符/占位符
  6. C 语言逻辑运算符
  7. C 语言三目运算符
  8. C 语言逗号表达式
  9. C 语言 sizeof 和 strlen 函数区别
  10. C 语言 strcpy 和 strcpy_s 函数区别
  11. C 语言 memcpy 和 memcpy_s 区别
  12. C 语言 数组定义和使用
  13. C 语言 数组遍历
  14. C 语言 数组排序 – 冒泡法排序
  15. C 语言 数组排序 – 选择法排序
  16. C 语言 数组排序 – 插入法排序
  17. C 语言 数组排序 – 快速法排序
  18. C 语言 数组下标越界
  19. C 语言 数组内存溢出
  20. C 语言 数组下标越界和内存溢出区别
  21. C 语言 二维数组定义和使用
  22. C 语言 二维数组行数和列数计算
  23. C 语言 指针声明和定义
  24. C 语言 指针 p++ / p–

未经允许不得转载:猿说编程 » C 语言 指针 p++ / p–

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BugkuCTF-MISC题又一张图片,还单纯吗

下载文件得到一张图片file.jpg 以010editor打开图片没有flag 以binwalk: 发现没有分离成功 以foremost: 生成file文件夹 得到flag

要闻君说:5G手机真的来了?TCL转型科技企业!鹅厂云部门发布态势报告, DDoS攻击正式进入Tb时代!天上“跑”起出租车?...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 图片来自腾讯《一线》岁末年初&#xff0c;真是一波“内部调整热”。要闻君得知&#xff0c;联想集团执行副总裁兼中国区总裁刘军选择在晚上发布了一封内部邮件&#xff0c;至此中国…

C语言 使用指针遍历数组 - C语言零基础入门教程

目录 一.使用数组下标遍历数组 1.计算数组元素个数2.通过下标遍历数组 二.使用数组首地址偏移遍历数组三.使用指针遍历数组四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.使用数组下标遍历数组 数组中的每个元素都有一个序号&#xff0c;这…

2018,这一年的腾讯优图,我们总结一下!

戳蓝字“CSDN云计算”关注我们哦&#xff01;2018&#xff0c;腾讯年满20&#xff0c;恰逢弱冠&#xff1b;2018&#xff0c;巨头持续布局AI&#xff0c;可谓“落地生花”的一年。毋庸置疑&#xff0c;腾讯也“玩”AI&#xff0c;最具代表性的&#xff0c;就是“玩出”了三大实…

BugkuCTF-MISC题只有黑棋的棋盘(writeup)

手动分离压缩包注意&#xff1a;zip压缩包文件头格式为504B0304&#xff0c;之间包含504B0102&#xff0c;文件以504B0506****结尾&#xff0c;注意这类格式。 解题流程 题目是1个压缩包&#xff0c;还有提示&#xff1a;动手修复。 1.先把压缩包解压&#xff0c;得到图片和…

js之讲解

1.啥时js 脚本语言 2.基本使用及HelloWorld <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><!-- js代码&#xff0c;也可以放入body中--> <!-- <script>…

C语言 指针和数组区别 - C语言零基础入门教程

目录 一.前言二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值b.数组赋值 3.指针是指针变量&#xff0c;数组是指针常量 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 …

AI时代的交换机什么样?华为CloudEngine 16800告诉你!

[中国&#xff0c;北京&#xff0c;2019年1月9日] “网络新引擎AI赢未来”华为网络春季新品发布会在北京顺利召开&#xff0c;华为发布了业界首款面向AI时代的数据中心交换机CloudEngine 16800&#xff0c;定义了AI时代数据中心交换机的三大特征&#xff0c;创新性地引入AI技术…

BugkuCTF-MISC题蜘蛛侠

下载附件 好几个加密文件&#xff0c;注释部分给出密码的提示 这个是苏州码子&#xff0c;〡 〢 〣 〤 〥 〦 〧 〨 〩 十分别对应1-10 压缩包密码是肆肆壹拾陆玖玖捌拾壹&#xff0c;根据hint.txt得知需要根据加密脚本&#xff0c;写出解密脚本得到file.jpg key.jpg数据被p…

C语言 指针数组 - C语言零基础入门教程

目录 一.简介 1.数组2.指针3.指针和数组区别 二.指针数组三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 1.数组 数组中的每个元素都有一个序号&#xff0c;这个序号从 0 开始&#xff0c;称为下标 index&#xff0c;例如&#xff0c…

BugkuCTF-MISC题做个游戏

补充&#xff1a; &#xff08;一&#xff09; JAR 文件就是 Java Archive File&#xff0c;顾名思意&#xff0c;它的应用是与 Java 息息相关的&#xff0c;是 Java 的一类文档格式。JAR 文件非常类似 ZIP 文件——准确的说&#xff0c;它就是 ZIP 文件&#xff0c;所以叫它…

js(javascript)之浏览器控制台使用

基本语法入门&#xff0c;必备调试技巧 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script>//js严格区分大小写//1.定义变量//var num1;//alert(num);//2.条件控制var …

C语言 数组指针 - C语言零基础入门教程

目录 一.简介 1.数组2.指针3.指针和数组区别 二.数组指针三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 1.数组 数组中的每个元素都有一个序号&#xff0c;这个序号从 0 开始&#xff0c;称为下标index&#xff0c;例如&#xff0c;…

Spark+Alluxio性能调优十大技巧

戳蓝字“CSDN云计算”关注我们哦&#xff01;由于统一访问对象存储&#xff08;如S3&#xff09;和HDFS数据的场景的出现和普及&#xff0c;Apache Spark结合Alluxio的大数据栈越来越受欢迎。此外&#xff0c;越来越流行的计算与存储分离的架构导致计算端查询延迟增大。因此&am…

jq(jquery)之点击隐藏段落

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点击p段落&#xff0c;把它们隐藏</title><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scr…

C语言 指针数组和数组指针区别 - C语言零基础入门教程

目录 一.简介 1.数组2.指针3.指针和数组区别 二.指针数组和数组指针区别 1.指针数组2.数组指针 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 1.数组 数组中的每个元素都有一个序号&#xff0c;这个序号从 0 开始&#xff0c;称为下…

BugkuCTF-MISC题FileStoragedat

知识点 FileStorage是微信存储数据的一个文件夹&#xff0c;该文件夹下存放的是经过加密后微信里发送、接受的图片而形成的文件后缀为dat的文件。就是微信dat文件。想要做出此题&#xff0c;就得先弄懂微信dat文件形成的原因。 微信的dat文件&#xff0c;将微信图片的各字节通…

官宣!张小龙史上最长演讲 4小时3万字完整版回应微信的一切

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章来自&#xff1a;腾讯科技&#xff08;ID:qqtech)腾讯科技讯 1月9日消息&#xff0c;在今日举行的2019微信公开课PRO的微信之夜上&#xff0c;腾讯公司高级执行副总裁、微信事业群总裁张小龙做了他自己有史以来最长的一次演讲&a…

有问有答 | 容器精华问答,如何玩转容器服务?

戳蓝字“CSDN云计算”关注我们哦&#xff01;容器这个词&#xff0c;当你第一眼看它或许脑子里是这东西&#xff1a;瓶瓶罐罐、装水、装其他东西的玩意。不管是什么&#xff0c;总的来说&#xff0c;容器给人第一印象就是——“装”。容器技术作为近两年热门的话题&#xff0c;…