代码编织梦想

6d63dc5dd3994f75ae53a20768cc10f6.gif

🏆 个人主页:🎈 @太阳哥哥 🎈

🎁 本文收录专栏:🎈 C语言学习之路 🎈

🛒 其他专栏:🎈 ARM学习之路 🎈

📝 学习格言:路漫漫其修远兮,吾将上下而求索

💡 欢迎点赞、关注、收藏( •̀ ω •́ )✧   一起努力,一起学习!

目录

        1、指针与数组

        2、指针访问数组

        3、指针与数组理解图

        4、指针与字符数组

        5、指针与数组小练习


1、指针与数组

        一个变量有地址,一个数组由多个元素组成,每个元素都会有一个地址,指针变量存储某种类型变量的地址,可以存储数组元素的地址

        数组:是一段连续空间,每个元素都是相邻,地址就是相邻的

        指针变量:可以存储数组中某个元素的地址,可以通过计算得到其他元素的地址,指针可以去访问数组元素

2、指针访问数组

        数组中,数组名代表整个数组,数组名是一个值,整个数组的首地址(第一个元素的地址)

        数组名 = 首地址

    int a[5];
​
    int * p;
​
    a == &a[0];
​
    p = a;//表示的是把a数组的第一个元素的地址赋值给p,而不是把数组每个元素的值赋值给p
    地址 + n:向后偏移n个数据大小
​
    *(地址):访问地址对应内存单元
    数组名:第一个元素的地址,也是指针
​
    数组名 + n:第n个元素的地址

如:

    int *p;
    int a[3];
    p = a;
    *(p+3) ==> a[3]
    *(a+3) ==> a[3]
    a是数组名,第一个元素的地址,不能更改,是一个常量
​
    p = a;//a是数组名
​
    p的作用与a的作用一致,指针用法就可以当作数组名的使用
​
    p[3] == a[3];
​
    指针取 * ,等价于数组取 [下标]

3、指针与数组理解图

 

  •         a[0] == *a == *(a+0)

  •         数组作为函数参数时,叫做地址传递,传递数组的首地址,形式参数定义的是数组也会变成指针

4、指针与字符数组

        字符数组可以按照字符串,整体进行操作(%s),字符数组整体按照字符串操作,使用数组名,当作整体进行

        指针变量存储地址,如果存储字符数组首地址,指针就可以当作字符串进行使用

    char buf[10]; //定义一个数组buf[10]
​
    char * p = buf; //定义一个指针变量 p ,用于指向buf[10]的首地址buf[0]
​
    scanf("%s",p); //对p所指空间进行输入内容

5、指针与数组小练习

        在主函数中给定一个字符串,如“abced”,再定义一个函数,使用指针方式,求出字符串的长度

        第一种方法,使用遍历计数的方法求输入字符串长度

#include <stdio.h>
​
int mystrlen(char str[5]) //char * str = buf
{
    int num = 0;
    for(int i = 0;*(str+i) != '\0' ;i++) // *(str+i) = buf[i]
    {
        num++;
    }
    return num;
}
int main()
{
    char buf[20];
    
    printf("请输入字符,以求其长度\n");
    
    scanf("%s",buf);
​
    printf("%d\n",mystrlen(buf));
}
​程序结果

 

        第二种方法,使用内部自带的strlen()函数

#include <stdio.h>
#include <string.h>
​
int main()
{
        char buf[20];
​
        printf("请输入字符,以求其长度\n");
​
        scanf("%s",buf);
​
        strlen(buf);
​
        printf("%ld\n",strlen(buf));
}
程序结果

        注意:使用时需要加上strlen函数头文件 #include <string.h>

        除了以上两种方法还可以用sizeof求字符串长度,但是求出的字符长度包括 ‘/0’,所以这方法求出的长度需要减一,可以自行编写,此处不在编写。

   
✨本篇到此结束啦!欢迎点赞👍收藏❤关注😎

ade2d02221184de18874af569fd12e2c.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_57768994/article/details/127199951

详解c语言中的数组指针与指针数组_q302989778的博客-爱代码爱编程_c数组指针和指针数组

·详解数组指针与指针数组 ·数组指针 一、区分 首先我们需要了解什么是数组指针以及什么是指针数组,如下图: int *p[5]; int (*p)[5]; 数组指针的意思即为通过指针引用数组,p先和*结合,说明了p是一个指针变量,指向一个大小为5的数组。所以,int (*p)[5]即为一个数组指针。int *p[5]则是一个大小为5且存放整型指针

c语言指针与数组理解_jaygee-的博客-爱代码爱编程

指针 32位机 C语言中指针是变量: 所以它有如下特点: 1.所占内存大小(4个字节 ); 2.作用域 3.存储区域 而指针又有步长,当指针进行表达式运算时。其步长跟所定义指针的类型相关 如:char *p 步长为1 int

C语言指针引用数组-爱代码爱编程

前言:C语言中指针玩的是什么,是内存,要想学好指针的小伙伴们要先对数据在内存中是怎么玩的做一番了解~       当在程序中定义一个变量时,系统会根据其数据类型为其开辟内存空间,例如Visual C++为整型变量分配四个字节的空间,为单精度浮点型变量分配四个字节,为字符型变量分配一个字节,内存中每个字节都有自己独立且唯一的一个编号,这就是地址

C语言指针——指针与数组-爱代码爱编程

种一棵树最好的时间是十年前,其次是现在。 指针与数组 一、指针的运算 指针可以进行三种运算: 1.指针加上整数: 如果指针p指向数组a[i],那么指针p + j 指向a[i + j](前提是a[i + j]存在!) 2.指针减去整数: 如果指针p指向数组a[i],那么指针p - j 指向a[i - j](前提 a[i - j] 存在!) 3

c语言之——指针数组与数组指针-爱代码爱编程

一、指针数组和数组指针的定义 1. 指针数组:是指一个数组里面装着指针,也即指针数组是一个数组; 定义形式:int *a[10]; 说明:[]的优先级高于*,该定义形式应该理解为:int * (a[10]);括号里面说明a是一个数组,包含了10个元素,括号外面说明每个元素的类型为int *。 如图所示: 2. 数组指针:是指一个指向数组的指针

C语言 指针访问数组,C语言通过指针引用数组-爱代码爱编程

C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。 引入指针变量后,就可以用两种方法来访问数组元素了。 如果p的初值为&a[0],则: p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。 *(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。例如,*(p+5)或*

c语言数组教案,C语言电子教案第七章指针与数组-爱代码爱编程

第1页 时 间 12 月 02 日 星期 2 课 题 指针与数组 教学目标 掌握指针和数组的定义以及使用方法 教学重点 指针数组的定义及使用 教学难点 指针数组的使用 课 型 公共课 教学媒体 多媒体 教法选择 讲授,举例,演示 教 学 过 程 教法运用及板书要点 第七章 指针 7.2 指向数组元素的指针变量 例 int array[1

c语言指针赋值给数组吗,C语言指针与数组的关系-爱代码爱编程

指针和数组到底有什么样的关系,他们之间没有任何关系! 指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址。指针可以指向任何地方,但不是任何地方你都能通过这个指针变量访问到。 数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但不能存函数。 一、以指针的形式

c语言中,函数形参是字符指针和字符数组,对实参的要求,C语言指针与数组笔记2...-爱代码爱编程

8.3通过指针引用数组 8.3.1数组元素的指针 一个变量有地址,一个数组包含若干个元素,每个数组元素都在内存中占用储存单元,它们都有相对应的地址。指针变量可以指向变量,也可以指向数组元素。数组元素的指针就是数组元素的地址。 可以用一个指针变量指向数组元素,例如: int a[10] = {1,3,4,6,7,9};//定义一个整型数组 in

C语言的指针\数组用图解一次搞懂-爱代码爱编程

目录 1.指针1.1指针相关标识符1.1.1 取地址符号 &1.1.2 解引用符号 *1.1.3 const 符号1.1.4 算数运算(偏移概念)1.2野指针1.3多级指针1.4复杂指针2.数组2.1数组与指针(重点)2.2复杂数组2.2.1变长数组2.2.2柔性数组(零长数组) 1.指针 在C语言中有很多不同的数据类型,int、ch

c语言 指针数组 数组指针 函数指针 数组传参 指针练习题 指针进阶相关-爱代码爱编程

文章目录 1.字符指针2.指针数组3.数组指针4.数组参数,指针参数4.1 一维数组传参4.2 二维数组传参4.3一级指针传参4.4二级指针传参5.函数指针6.函数指针数组7.指向函数指针数组的指针8.解析一些指针题第1题第2题第3题第4题第五题第六题第七题第八题 1.字符指针 在使用字符指针时,第一种为通常的情况。这次主要关注第二种情况

C语言 指针与数组-爱代码爱编程

在C语言中,数组的指针是指数组在内存中的起始地址, -----数组元素的地址是指数组元素在内存中的起始地址 一维数组的数组名为一维数组的指针(起始地址) 下面用代码验证一下 x[i],(px+i),(x+i)和px[i]是否具有相同功能(访问数组第i+1个数组元素)。 #include <stdio.h> int main(int a

C语言指针数组相关学习-爱代码爱编程

数组 在定义初始化字符数组时,一定要让字符数组的大小比看到的字符串的长度多1scanf读入s%可以不取地址,同时遇到空格时便会停止写入gets和puts 当一次读取一行时便使用gets下面是常用的几个函数的使用方法。 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include&l

C语言知识:数组和指针-爱代码爱编程

目录 数组 一维数组 1、作用: 2、数组框架: 3、数组的定义方式: 4、计算数组内存大小: 5、访问数组元素: 6、数组名和数组的数据类型问题: 二维数组 1、本质上也是一维数组 2、二维数组定义模型 3、二维数组定义和初始化 4、二维数组的大小 5、数组元素的访问 指针数组 1、概念: 2、定义模型 指针 一

c语言的指针数组详解-爱代码爱编程

文章来源: 学习通http://www.bdgxy.com/ 指针如何指向数组,并读取数组中的元素: #include <stdio.h> int main() { int arr[3] = {1,2,3}; int *p; p = &arr[0];//此句也可以写成 p = arr; for(int i=0;i<

https://blog.csdn.net/m0_51330854/article/details/117999723_hardenough jung的博客-爱代码爱编程

二维数组指针,指针数组与数组指针的区别,一看就懂_还好我头发多的博客-CSDN博客_二维数组是数组指针吗 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着

c语言指针操作(二)通过指针引用数组_醉蕤的博客-爱代码爱编程

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。  学习日记 目录 学习日记  前言​编辑 一、通过指针引用数组 1、数组元素的指针  2、在引用数组元素时指针的运算 3、用数组名作函数参数  例1 例2 例3  C语言指针操作  前言         指针这里分为八个小部分,分别是“指针变

c语言指针数组和数组指针详解-爱代码爱编程

C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序

c语言指针 — 数组参数和指针参数_指针数组的实参-爱代码爱编程

文章目录 前言一、 一维数组传参二、 二维数组传参三、 一级指针传参四、 二级指针传参 前言 在写代码的时候难免要把【数组】或者【指针】传给函数,那函数的参数该如何设计呢?实参是什么形参就用什么