指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 08:37:12
指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0
xŔRA_UEP Ie$kJKj^5 X: ӳrzz1fO̴VM Baq>yOJvѪlR3 ^ÎYE>fgXLJo> Bř@xem%)kɅuV~q󆎏UƽPJB&56XjJﺔ8R Flasbҳ3߈{c08g y{vOjゥXIgZxβ*jJ W]1i  wZ]YW>8~ȧ` yG̓"o[Hޑ"rZYݲW$pY/

指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0
指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0

指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0
你知道指针本身保存的是个地址,理论上地址都是一样的,没类型上的区别,比如32位的地址都是4字节长度,只是编译器在对指针运算时必须按对象所占内存空间的字节宽度递增和运算(字节对齐).
 
int a[100]={1,2,3,4,5,6,7,8,9.};
int *p=a;
比如一个int型变量占用4字节(类型数据宽度),那么一个int型数组中每个元素字节宽度为也都是4字节,指针p保存的是数组a的首地址(a就是指针指向的类型),假设a的地址为1000,现在执行p++,意思是指向下一个元素,因此p递增时需要按类型数据宽度递增,否则会错位.那么int型元素宽度为4,因此p++的实质是1000+4=1004,让p与每个元素对齐.而如果数组a为char类型,显然char的数据宽度为1,那么p++就是1000+1=1001.
 
为了保证编译器能正确进行指针运算,需要让编译器知道指针指向的是什么类型,以便对齐,因此编译器要求给指针定义类型,且指针的类型必须和被指向的数据类型匹配,那样编译器根据指针类型了解数据宽度是多少,然后进行正确的地址定位.

指针的类型和指针指向的类型具体区别在哪里?看了很多书都是比较模糊的 希望能在2014-04-17 0 指针的类型和他指向变量的类型完全相同是什么意思,指针(变量)不是只是整型吗 指向函数的指针有什么具体的用处吗,他返回的类型还是前面所定义的类型,所以可以不指向函数的指针啊 指向void类型的指针可以存放指向任何类型的指针,但不能引用其自身是什么意思 我的意思是指针的类型和所指向的内容怎么描述.谢谢 求解指向指针的函数和指向函数的指针用法区别和举例, 函数指针和指针函数区别?一个是指向函数的指针 一个是 返回指针的函数? 指向对象的常指针和指向常对象的指针变量相同与区别? 指针变量与其他类型变量的区别 定义指针变量时必须说明其() ,以确定该指针变量所指向的变量的类型. 指针“变量里面的值” 和 “指针地址的值” 和 “指针指向的值” 有什么区别? 一个指针class类型,它是指向class类的成员变量还是函数还是数据? 只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中.这句话是对是错? C语言.指针变量的类型符号一定与它所指向的变量的类型符号相同吗? 什么是基本类型,构造类型,指针类型和空类型?它们分别有何区别? 指向函数的指针和指针型函数,搞不太懂啊! 指向数组的指针和指向数组的元素的指针有何区别?数组名和指针变量名有何区别? 指针常量和常量指针的区别