⑴ c语言中指针的长度!
记住32位下的指针 都是4个字节可以简单的这么理解:一个基本的数据类型(包括结构体等自定义类型)加上“*”号就构成了一个指针类型的模子。这个模子的大小是一定的,与“*”号前面的数据类型无关。“*”号前面的数据类型只是说明指针所指向的内存里存储的数据类型。所以,在 32位系统下,不管什么样的指针类型,其大小都为 4byte。
⑵ C语言指针变量大小的问题
对于这个你只要记住一句秘诀就好,指针的大小仅仅取决指针本身的大小,不取决于指针指向的大小。 还有就是还有一个虚拟内存和物理地址的关系,有MMU映射,8086里有硬件完成一个地址偏移的过程,物理地址 = 基址*16 + 变址。
⑶ c语言中,运用指针,从键盘输入10个整数,求出其中最小值
#include<stdio.h>
intmain()
{inti,min_i=0,a[10],*p=a;
for(i=0;i<10;i++)
{scanf("%d",(p+i));
if(*(p+i)<*(p+min_i))min_i=i;
}
printf("最小值=%d ",*(p+min_i));
return0;
}
⑷ C语言指针查找最大最小值
#include<stdio.h>
intmain()
{
inta[10],i,n,j;
int*q;
q=&a[0];
for(i=0;i<10;i++)
{
printf("请输出1个整数:");
scanf("%d",&a[i]);
}
for(j=0;j<9;j++)//这两个for循环的作用是将10个数从大到小排序
{
for(i=j+1;i<10;i++)
{
if(*(q+j)<*(q+i))
{
n=*(q+j);
*(q+j)=*(q+i);
*(q+i)=n;
}
}
}
printf("Themax=%d,Themin=%d ",*q,*(q+9));//输出第一个和最后一个数
}
⑸ C语言指针输出最大数和最小数
可以的。因为在之前的语句:max=min=*x;里面已经将第一个元素存储在了变量max ,min 中,如果你用p=x,只不过是把第一个元素和自己比较一下大小而已,当然for语句中的2个if语句都不会执行(应为自己和自己相等啊),不影响任何结果,for接着执行下一次循环,从第二个元素开始比较,接着就是你上述程序的步骤了。
PS:希望对你有用。
⑹ 关于c语言指针的一些问题。
1、不是说系统64位它就是8字节,而是受限于地址总线的字节宽度,你的地址总线是64位的即指针就是8字节的,但是现在的64位个人pc多半是x86-64能兼容32位的应用程序。
2、有,你64 位的机器,它的虚拟内存可以到8TB,如果你在64位机上装个32位的windows你会发现,我的个去……慢的要死(我犯过这样的低级错误)
3、指针保存的是地址,比如32位机上,每个地址都是32位的,所以它始终都是4字节,没有最大或者最小。
观楼主英俊潇洒、风流倜傥,必当世之豪杰,诚邀楼主加入0x30网络贴吧,共商义举,成千秋霸业。
⑺ C语言题目 指针之最大最小值 G题
imax=imin=a[0];
for(i=1;i<N;++i)
{
if(a[i]<imin)imin=a[i];
if(a[i]>imax)imax=a[i];
}
⑻ C语言指针的地址范围是多少
C语言的指针地址范围是4字节空间,即从地址0x00000000~地址0xFFFFFFFF。但其中有些字段是系统保护的或所使用的硬件平台根本就不存在,所以用户指针并不能完全使用这个空间。不过用户不必担心,只要按规范使用指针,系统都会自动正确安排。
⑼ C语言中一个指针占用多少字节
一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节咯。
指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
(9)c语言指针最小多少扩展阅读
1、指针的类型
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:
(1)int*ptr;//指针的类型是int*
(2)char*ptr;//指针的类型是char*
(3)int**ptr;//指针的类型是int**
(4)int(*ptr);//指针的类型是int(*)
(5)int*(*ptr);//指针的类型是int*(*)
2、指针所指向的类型
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:
(1)int*ptr; //指针所指向的类型是int
(2)char*ptr; //指针所指向的的类型是char
(3)int**ptr; //指针所指向的的类型是int*
(4)int(*ptr); //指针所指向的的类型是int()
(5)int*(*ptr); //指针所指向的的类型是int*()
⑽ 在C语言中一个指针占用多少字节。
指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节。
(10)c语言指针最小多少扩展阅读:
1)指针的含义
指针不同于一般变量,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样比如说一个char1字节,可以存在0x0,也可以位于0xFFFFFFFF,比如你的32位系统。
2)指针的范围
指针长度为4,在64位操作系统下那么就都是8了,而和char占用1字节还是100字节无关,指针的范围只和机器字和系统有关。
3)变化的范围
如果你输出的是444,说明指针长度为4字节可以记录的地址范围是0x00000000~0xFFFFFFFF,这个范围才是指针变量的值。
4)指针的介绍
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。