首页 > 其他分享 >C语言--指针与数组

C语言--指针与数组

时间:2023-02-12 13:55:34浏览次数:57  
标签:-- 数组名 C语言 int 地址 数组 指针

1.数组的本质

  就是一片连续的内存;

2.一些事实

  -使用取地址操作符&获取数组的地址

  -数组名可看作一个指针,代表数组中0元素的地址

  -当指针指向数组元素时,可进行指针运算(指针移动)

  eg:int a[] = {1, 2, 3, 4, 5};

    int* p = a;//a<==>数组名<==>&a[0]

    p = p + 1;//指针操作

    printf("%p", p);//打印指针用%p

3.深入理解数组地址(int a[] = {1, 2, 3, 4, 5};)

  -&a与a在数值上相同,但是意义上不同

  -&a代表数组地址,类型为:int (*)[5];

  -a代表数组0号元素地址,类型为:int*

  -指向数组的指针:int*(pName)[5] = &a;

  eg:int a[5] = {1, 2, 3, 4, 5};

    int(*pa)[5] = &a;

    int * p = a;

    pa = p;//错误 类型不一致

注意:数组名并不是指针,只是代表了0号元素的地址,因此可以当作指针使用

4.指针与数组的等价用法

  a[i] <==>*(a + i)//a+i即数组中第i个元素的地址

     <==>*(p + i) <==>p[i] 

5.字符串

  C语言中,字符串常量时char*类型,一种指针类型

6.指针移动

  int v = *p++;

  --指针访问操作符(*)和自增运算符(++)优先级相同

  --所以,先从p指向的内存中取值,然后p进行移动

    --等价于:int v = *p;p++;

小结:数组名可看作一个指针,代表数组中0元素的地址

   &a与a在数值上相同,但是意义上不同

   C语言中字符串常量的类型时char*

   当指针指向数组元素时,才能进行指针运算

标签:--,数组名,C语言,int,地址,数组,指针
From: https://www.cnblogs.com/ysnana/p/17113727.html

相关文章

  • 02-workflow
    1.存储与读写1.1Kafka存储机制由于生产者生产的消息会不断追加到log文件末尾,为防止log文件过大导致数据定位效率低下,Kafka采取了〈分片〉和〈索引〉机制,将每个......
  • 自实现linker加固so防dump
    对于自定义linker加固so而言,为了防止整体dump并对修复重定位表的脱壳方式(upx的脱壳),可以将一些重要的结构信息在内存中进行抹去和移动。抹去ELF文件头再so文件加载后就不......
  • switch 测试
    packagecom.zxs.process;publicclassswitchces{publicstaticvoidmain(String[]args){charcj='c';switch(cj){case'a':......
  • while 测试
    packagecom.zxs.process;publicclasswhileces{publicstaticvoidmain(String[]args){inta=0;ints=0;//do...while先执行,后判断......
  • 输入输出 测试
    packagecom.zxs.process;importjava.util.Scanner;publicclassprocess{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(Syste......
  • C语言学习:计算时间差
     1#include<io_utils.h>2#include<time_utils.h>3#include<time.h>45#definePI3.141592667voidDoHardWork(){8doublesum=0;9......
  • VisualStudio下载与安装
    VisualStudio的下载与安装教程在VisualStudio官网下载相应的版本点击跳转到官网下载![](N:\博客照片\下载2023-02-03143854.png)这里我选择的是2022年的社区版......
  • 博客文章更正系列(3)
    易经占卜学问的再次解惑。一般情况下,我们人决定去做一件事情的时候,一般是产生了思想,就去做那件事了。那么,这件事情未来所会造成的结果是我们人未能预测的。这个时候,假设我们......
  • 小k代练
    什么是小k代练?如下地址戳我即可进入......
  • ansible并发设置与限制
    一、说明与设置1、问题需要同时对上百台机器进行批量命令执行,执行时间过长2、forks设置Ansible提供一个forks的属性,可以设置运行并行进程数。这个值默认比较保守,只有5个并行......