从sizeof 数组和指针看,数组和指针是不同的

[cpp] view plain copy

  1. #include<iostream>
  2. using namespace std;
  3. void fun(int *P)
  4. {
  5. cout<<"在函数中"<<sizeof(P)<<endl;
  6. }
  7. int main()
  8. {
  9. int A[10];
  10. int* B=new int[10];
  11. cout<<"数组名"<<sizeof(A)<<endl;
  12. cout<<"指针"<<sizeof(B)<<endl;
  13. fun(A);
  14. }

结果输出:

数组名40
指针4
在函数中4

另外数组是地址常量,指针是地址变量

时间: 2024-07-31 14:32:24

从sizeof 数组和指针看,数组和指针是不同的的相关文章

sizeof ()求指针和数组时的不同

sizeof()求取参数在内存中的字节数大小. sizeof在对指针和数组的求取中需要注意的地方: #include<stdio.h> int main() { char *p = NULL; char arr[10]; char str[]="hello"; int a, b, d, e, f, g,h; a = sizeof(*p);//指针类型.    a=1; b = sizeof(p);//sizeof求任何指针都是4个字节. b=4; d = sizeof(ar

指针、数组与sizeof运算符

1.sizeof是C语言的一个运算符(主要sizeof不是函数,虽然用法很像函数),sizeof的作用是用来返回()里边的变量或者数据类型占用的内存字节数.2.sizeof存在的价值:主要是因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32位系统上为4字节,在16位系统上为2字节).所以程序中需要使用sizeof来判断当前变量/数据类型在当前环境下占几个字节.3.举例说明:例子1:char str[] = "hello";sizeof(str)    //元素所占的

C编译器剖析_1.5 结合C语言来学汇编_指针、数组和结构体

让我们再来看一份C代码,及其经UCC编译器编译后产生的主要汇编代码,如图1.33所示,其中包含了数组.指针和结构体. 图1.33 数组.指针和结构体 按照C的语义,图1.33第9行的C代码是对局部数组number的初始化,需要把number[0]初始化为2015,而数组中的其他元素皆被初始化为0.UCC编译器采取的翻译方法是:先调用memset函数来把数组number所占的内存空间清0,然后再把number[0]设为2015,如图1.33的第17至24行所示.C库函数memset的API如下所示

指针、数组的理解与关系

一.指针的本质:变量,指针变量就是指针变量int *p:两个变量,一个p(指针变量本身)是int *类型的 另一个是*p(指针指向的那个变量)是int类型的注:指针说白了就是指针类型,前面定义的int类型是为了说明指针指向的那个数的类型,所以指针的解析方式都是按地址来解析的(不管你是char *还是double *,解析方式都是地址)而指向的那个数的类型就要看你怎么定义的了例如:int *aa是按照地址来解析的:*a则是按照int类型来解析的. (1)所有的类型的数据存储在内存中,都是按照二进制

指针与数组

前面的东西都比较基础,后面的这个才是真正关键的地方. 示例代码: #include <iostream> #include <stdlib.h> int main(int argc, char *argv[]) { //argc 指的是参数个数 // argv[0]指的是程序的名字 // argv[1]值的是程序执行的第一个参数 int array[10]={1023,2,3,4,5,6}; int *p = &array[0]; int *p1 = array; prin

转:浅谈C/C++中的指针和数组(一)

转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242138.html 浅谈C/C++中的指针和数组(一) 指针是C/C++的精华,而指针和数组又是一对欢喜冤家,很多时候我们并不能很好的区分指针和数组,对于刚毕业的计算机系的本科生很少有人能够熟练掌握指针以及数组的用法和区别.造成这种原因可能跟现在大学教学以及现在市面上流行的很多C或者C++教程有关,这些教程虽然通俗易懂,但是在很多关键性的地方却避而不谈或者根本阐述不清楚,甚至很

附录一 再论指针和数组

附录一 附录一 再论指针和数组 再论指针和数组 [email protected]:Kevin-Dfg/[email protected]:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.git 预习检查 链表单元有哪几个部分组成 如何申请链表单元,及释放链表单元 实现单链表插入的基本语法 简述一下快速排序基本理论要点 [email protected]:Kevin-Dfg/[email protected]:Kevin-Dfg/Dat

C++中的指针和数组

最近看C++编程思想,看到第十三章动态内存管理的时候把自己给绕进去了,主要是在数据和指针这块弄混了.现在把找到的一些资料总结如下: 1. 数组是数组,指针是指针,两者并不等价: 2.数组在作为左值的时候一般是数组自己,而放在右值往往被转换成一个常量指针: 3.下标运算符其实是针对指针的,只是数组变成指针后也适用于了数组: 4.对数组取地址符在很早以前是错误的,因为数组名本身就是数组的地址,对地址去地址显然不对,后来被C++标准定为合法的,表示指向数组对象的指针. 对于 int a[100]; i

c语言之指针与数组

考虑该例子: int calendar[12][31]; 该语句声明了calendar是一个数组,该数组拥有12个数组元素,其中每个元素都是一个拥有31个整型元素的数组(而不是反过来理解).因此,sizeof(calendar)的值是12*31=372与sizeof(int)的乘积.如果calendar不是用于sizeof的操作数,而是用于其他的场合,那么calendar总是被转换为一个指向calendar数组的起始元素的指针.要理解上面这句话的含义,就得先理解有关指针的一些细节. 任何指针都是

c/c++ 函数、常量、指针和数组的关系梳理

压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和类型,c 中的数组参数是引用形式传参(传址调用),而常量标量是按值传递. //[]方括号表示声明的是数组,里面的数字表明了数组包含的元素数目 int states[50];//声明50个整数的数组 double code[365];//声明365个浮点数的数组 char chr[20];//声明20