首页 > 其他分享 >如何理解C语言中“数组名就是指针”

如何理解C语言中“数组名就是指针”

时间:2023-11-30 10:44:07浏览次数:34  
标签:int C语言 访问 数组名 理解 指针

定义一个数组:

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

访问元素5可以通过以下形式的代码:

a[4]; /*下标运算符,可理解为数组的访问形式*/
*(a+4); /*指针的加法运算和解引用,可理解为指针的引用形式*/

实际上这两种访问形式是等价的,即X[m]=*(X+m)
这里不妨再拓展一下,根据加法交换律,交换两个加数的位置不会影响结果,那么*(X+m) = *(m+X) = m[X]是否成立呢?

#include <stdio.h>
int main()
{
    int a[5] = {1,2,3,4,5};
    printf("a[4] = %d\n", 4[a]);
    return;
}

答案是肯定的,编译没有任何error和warning,结果正常输出

a[4] = 5

标签:int,C语言,访问,数组名,理解,指针
From: https://www.cnblogs.com/lucky-glc/p/17866766.html

相关文章

  • 实验5—C语言指针应用编程
    1、实验任务1task1_1源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • 指针强制类型转换的本质
    例题:#include<iostream>#include<stdio.h>#definelllonglongusingnamespacestd;intans[100];intmain(){ doubled; cin>>d; llp=*(ll*)&d; intcnt=0;for(;cnt<64;){ans[++cnt]=p&1;p>&g......
  • 指针的注意事项
    1.如果在代码里面这么写char*cp="123";...if(*cp)...if(!*cp)...第一个if指cp这个指针当前指向的地址是否是cp最开始指向的字符串的有效位里面(不包含'\0')第二个if当然就是反过来了2.如果常量指针(const)要赋值给普通指针,必须加上显式类型转换,比如constint*p=&x;int*......
  • 《初学C语言第10天》
    ////------------------------------------------------------------例题1,2//1////给出一百分制成绩,要求输出成绩等级'A'、B、C、D'、E。////90分以上为'A',80~89分为B.70~79分为C,60~69分为D60分以下为E。//#define_CRT_SECURE_NO_WARNINGS1//#include<stdio.h>//int......
  • C语言 主机字节序和网络字节序互换
    #include<stdio.h>#include<arpa/inet.h>intmain(){//10.11.12.13uint32_thost_ip=168496141;uint32_tnetwork_ip=htonl(168496141);//13.12.11.10printf("network_ipis%u\n",network_ip);//10.11.1......
  • C语言宏相关知识
    $$C语言宏$$1.宏定义:宏定义又称为宏替换、宏代换,简称“宏”,是C提供的三种预处理功能的其中一种①。其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。2.格式:简单宏定义格式:#define<宏名/标识符><字符串>eg:#definePI3.1415926定义......
  • 基本数据类型-C语言-2023/11/29
    ......
  • 实型(浮点型) 字符型 枚举型 - C语言-2023/11/29
    实型(浮点型)字符型枚举型......
  • C语言RsaUtil,C语言Rsa验证签名,验签----自测OK
    摘自:https://www.dandelioncloud.cn/article/details/1498198300963708930 //RsaUtil.c#include<string>usingnamespacestd;#include<stdio.h>#include<stdlib.h>#include<string.h>#include<openssl/rsa.h>#include<openss......
  • Base64编码、解码 C语言例子(使用OpenSSL库)
    #include<stdio.h>#include<string.h>#include<unistd.h>#include<openssl/pem.h>#include<openssl/bio.h>#include<openssl/evp.h>intbase64_encode(char*in_str,intin_len,char*out_str){BIO*b64,*bio;......