⑴ c语言中,一个指针占用的空间是多大和指针类型有关系吗
指针和其指向的数据类型有关系,你可以用sizeof()来做测试:
printf("the size of char is %d\n",sizeof(int*));
printf("the size of char is %d\n",sizeof(char*));
另外,指向结构体的指针就要看具体情况了,C语言还有所谓的“对齐机制”,就是结构体里的单元,所分配的空间实际上要参照结构体里“体积”最大的那个单元。就是说,比如一个char和一个int,char要向int看齐,一个char和一个double,char要向double看齐。关键就在于凑整数,凑成最大变量大小的倍数。当然,如果结构体里只有char型的变量或是数组,就不存在一定要凑数的问题了。
⑵ c语言指针占几个字节
在C语言中,无论指针指向的内容是什么,指针总是占4个字节的。
⑶ c语言 二级指针
第一条改成
int
a[10][20],*p=a[0];
二维数组本来就是以为数组,二级指针是指针的指针,不同概念
char
*a[]={"a","b"};
char
**p=a;
这里定义了一个指针数组,里面保存了两个地址,一个是字符串a的首地址,一个是字符串b的首地址,然后数组的首地址a,这样用一个二级指针才能访问,这就是所谓的指针的指针
int
a[2][2]={1,2,3,4};
int
(*p)[2]=a;
(*p)[2]的意思是,p是一个指针变量,只想一个有两个元素的一位数组,这不刚刚就是二维数组的首地址吗?所以这个(*p)[2]是可以指向二维数组首地址
*p[2]的意思是,定义一个数组,里面有两个指针元素,这和"[]","*"运算符优先级有关的
⑷ C语言中一个指针占用多少字节
一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节咯。
指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
(4)二级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语言考试的题型有哪些以及相应的分值是多少
考试形式及分值:
笔试:选择(70分)填空(30分)
机试:改错(30分)填空(30分)程序(40分)
⑹ c语言中指针占多少个字节
四个字节,32位的地址宽度,最大可以管理4gb的内存。
⑺ 计算机二级C语言中指针所占分值比例
笔试部分不到10% 指针主要表现在上级部分,大概题目是一个填空和一个编程,这里面必考指针,指针是重要的部分,计算机二级C语言的精髓也就在指针部分。
⑻ 计算机二级c语言指针产量怎么算啊,不知道怎么算的,15题,求详细过程
i=3 j=5 这两个的值一直都没变
p 和 q 指向的上面两个的地址 ,这个也没变过
这两个地址传入函数f后 ,由于比较条件成立 造成地址交换 ,s指向i的地址.并返回
所以r 指向的是j的地址
所以结果就是 d) 3,5,3,5,5,
⑼ C语言中二级指针和一级指针
*s=p是将s指向的地址中的内容修改为p
s=&p是令s指向p
⑽ 在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)指针的介绍
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。