c++问题 int*p;cout<<sizeof(*p);会显示什么

如题所述

sizeof的问题:sizeof是得到某一种类型的数据占用的内存空间例如 sizeof(int)测试的是int类型的数据占用的字节数,sizeof()可以直接sizeof(int)直接写一个数据类型,其次可以使用某一种类型的数据例如sizeof(10)得到的实际上与sizeof(int)是一样的,不可能是10占用了多少内存空间,因为10是一个常量。所以sizeof是得到的某一种类型的数据占用的内存空间。

sizeof(*p),那么*p实际上是一个整型数据,那么得到的就是sizeof(int)一样的,也就是4了。

注意sizeof用在数组上面的时候是不一样的:int a[5]={0}; sizeof(a)得到的是5*4=20个字节()。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-18
指针的sizeof是4
指针就是地址.
这里是4字节表示一个地址.
第2个回答  2009-09-18
楼主这都不会。说明你还不行。
第3个回答  2009-09-18
自己写个小程序测试一下得到的什么结果就是什么.如果不想自己动手也不用学了.

c++中对一个指针数组使用sizeof
sizeof(指针数组) = 4 * 数级长度;例:定义:char *p[100];则:sizeof(p) = 400;你提的问题不详细,如果答非所问,你可以再补充一下问题。

c++指针怎么知道指向内存的大小
Type* Tmp = reinterpret_cast<Type*>(ptr);你可以试试,没有任何人知道内存有多大,你只能知道你在用什么类型去使用这个内存,而那个类型的大小你是知道的(编译器会帮你计算的).

c++ const *p 指针
“求值不能改变”是对p说的,即你不能用*p = 12;之类 p=&y;x=y;cout<<*p;显示的是y的值。

C++中 q=(int *)p是什么意思?
意思是:将指针变量p强制转换成指向int型的指针后,赋值给指针变量q。C语言中:(类型) 用于强制类型转将,即将后面变量或表达式(需用括号括起来)强制转换成括号中的类型。=为赋值运算符,运算顺利上从右往左,先计算=右边的表达式的值,再将值赋给=左边的变量。

C++程序:输入n个数,将这些数从大到小排列输出
int j=0;j<i;j++) { if(p[j]<p[j+1]) { t=p[j];p[j]=p[j+1];p[j+1]=t; } } \/\/顺序输出 for(int i=0;i<n;i++) cout<<p[i]; return 0;}

在C++中(int *)*p代表什么意思
p 是指针,指向的内容也是一个指针,这个指针是整数指针。p --> p1(*p) --> 整数

C++程序问题
一般进程在内存中的基址是0x400000;int *p= (int*)0x400000; cout<<(*p); \/\/这样没有问题可以读取到内存里面的内容,也就是你编译的exe的前4字节内容。然而,0x8000这个地址,可能是不存在内容与之对应的地址(未使用的地址),即使上面有内容,也有可能是某dll的只读数据段,于是往里面写入会...

sizeof 问题~(仍然不明白)
int i;char *p = (char*)&xy;for(i=0;i<40;i++)(p+i) = 'A';监视xy的内容,发现:在i=10、11(对应的是char[10]后面的两个字节)及i=26,27,28(对应是char x后面的三个字节)时,xy的内容不变。由此判断编译器在进行内存分配的时候做了访问的优化,因为windows是32位系统,每次...

c++问题:程序怎样运行的(*p)[0]什么意思呢
int (*p)[4] 指针变量. p是指向int[4] 的指针. (*p)[0] 表示, a[0][0]或(*a)[0]. 此程序有两个循环, 第一个循环3次, 当i==0, a[0][i+i\/2] = a[0][0]+1; 第二个是显示数组a

c++高手 关于sizeof和strlen的不同
首先:sizeof得到是变量或者类型的长度,对于变量来说,得到的是其分配的内存的大小,其是以字节为单位的,而对于数组来说, 可以用数组名作为其参数,也可以用数组中的某一个单元作为其参数,但此时计算出来的长度是不同的,例如:int b;char a[10];char *p=a;b = sizeof a;\/\/b=10现在计算...

相似回答