博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对于C语言中数组名是指针的理解
阅读量:5313 次
发布时间:2019-06-14

本文共 651 字,大约阅读时间需要 2 分钟。

我们都知道,c语言中数组名是一个指针,比如下面这段代码

#include<iostream>

using namespace std;
int main()
{
 int a[4]={1,2,3,4};
 for(int i=0;i<4;i++)
 {
  cout<<*(a+i);//*(a+i)和a[i]是等价的。
  cout<<endl;
 }
 return 0;
}

但是看下面这个代码

#include<iostream>

using namespace std;
int main()
{
 int a[4]={1,2,3,4};
 cout<<"数组长度"<<sizeof(a)<<endl;
 int *p;
 cout<<"整形指针的长度为:"<<sizeof(p)<<endl;
 p=a;
 cout<<"指向整形数组后指针的长度为:"<<sizeof(p)<<endl;
 return 0;
}

 

运行结果为:数组的长度为16

整形指针的长度为:4

指向整形数组后指针的长度为:4

*********************************

问题来了:既然数组名a是指针,为什么sizeof(a)和sizeof(p)得到的结果是不一样的呢?是不是说数组名不仅仅是指针呢?

我是这样理解的,数组名就是指针,而且是个常指针,而sizeof一个长指针和一个同类型的指针变量得到的结果是不一样的。

转载于:https://www.cnblogs.com/qingergege/p/4944869.html

你可能感兴趣的文章
[转]IOCP--Socket IO模型终结篇
查看>>
(五)归一化
查看>>
hdu 4737 A Bit Fun 尺取法
查看>>
使用信号量
查看>>
《数据分析实战》--第三章 python实现
查看>>
crontab command not found
查看>>
记录-springMVC访问web-inf下文件问题+在jsp页面导入jquery插件路径不对问题
查看>>
对于C语言中数组名是指针的理解
查看>>
实验八 接口与实现接口的类
查看>>
mac OSx 安装 mysqlclient
查看>>
Scala for the Impatients---(10)Traits
查看>>
简单的姓名号码查询系统
查看>>
PostgreSQL 保留关键字添加方法之一,不带参数的函数
查看>>
你的博客可能被爬了
查看>>
赛前热手 (天梯赛暴力题)
查看>>
.net 冒泡排序示例
查看>>
Uva(10330)
查看>>
vlan学习
查看>>
R-Sys.time计算程序运行时间
查看>>
Java类模板
查看>>