A. C语言 point=(char*)i point为指针 i为长整形数据
(char*)i将i强制转换为字符类型,将值赋给point,赋值后输入指针的值为i的值(具体结果要看是以什么格式输入)
如果point为指针,这种赋值能通过编译,但没有实际意义。
B. C语言指针定义
(1)指针变量定义的格式:
类型标识符 *变量名; 如:int *point;
注意:在定义int point;的时候 ,加粗部分的 不是取值符,而是修饰point是一个指针变量,如何确定point指向什么类型的变量呢,需要进行下一步:看非加粗部分,int则表示point指向int类型变量或保存int类型饥基变量的地址。
(2)指针变量的初始化,先来看个实例:
说明:
表示该变量的类型是一个指针变量,指针变量名是p1而不是 p1;
如果在同一洞宴行定义多个指针变量应该是:int *p1, *p2;而不是int p1, p2或者 int p1, p2;
给指针变量初始化有两种方式:
在定义时初始化,如int *p_2 = &b;
先定义再初始化,如int *p1; p1 = &a;
*p1是p1所指向的变量的值;
一个指针变量只能指向同一个类型的变量。
(3)对于指针变量的两个运算符烂颤谨“*”与“&”:
& 取地址运算符 //&a就代表a的地址(指的是a所在内存空间的起始地址)
C. C语言,关于指针 (point) 的程序。拜托了。谢谢。
#include <stdio.h>
main( )
{
int a=10,b=100,c=1000; //调试:a(0x0012ff7c) b(0x0012ff78)
c(0x0012ff74) 整型在C++中占4位
可以看出a,b,c内存单元是连续的
int *p=&c; //这里p指向c的内存单元
for(int i=0;i<10;i++)
printf("%d,",*p++);//内存当中abc的存储顺序为c,b,c,..
printf("\n");
}
由于你将p指向了c,所以显示时将从c内存单元里的内容开始,依次向后移动4位,而a,b,c在内存中是相邻的,所以显示结果为c,b,a,......由于0x0012ff80地址以后的内存单元没有用到,里面是随机数,所以以后显示的数字将不确定