意思就是说,定义一个指针变量p,p内保存的是值是1 也就是说,p内保存的是地址,而保存的地址是多少呢,地址就是1,再确切点就是地址是0x00000001,如果 你取*p,则实际访问的是地址为0x00000001为首地址的 一个int大小的内存块
因为int*/char*只能存地址,字符串在C里本身就是以地址形式存的,但int不是地址
int *p=new int;就是说在堆内存中开辟一块新空间,里面存放int的数据,然后你要是想对他操作,当然要有个指向他的指针,就是定义了的p;然后你这个代码*p=1;就是说把1赋值给p指针所执行的内存空间中,修改内存中值!
int *p; *p = 1 为什么不能用? int *p;定义了一个指针p,然而p并没有指向任何地址,所以当使用*p时是没有任何地址空间对应的,所以 *p=1 就会导致,不知道把这个1赋值给哪个地址空间了。int *p; p = 1; 为什么能用? int *p; 定义了一个指针p, p = 1; 意思是将一个内存地址为1的...
百度试题 题目设int *p , I ;以下正确合理的语句是( )。 A. *p=10; B. i=p; C. i=*p; D. i=2*p+1; E. (√) 参考答案:A 相关知识点: 试题来源: 解析 A.*p=10; 反馈 收藏
{ int p; p=*p1;*p1=*p2;*p2=p; } main() { int a=5,b=7,*ptr1;*ptr2; ptr1=&a;ptr2=&b; swap(ptr1,ptr2); printf("*ptr1=%d,*ptr2=%d ",*ptr1,*ptr2); printf("a=%d,b=%d ",a,b);} 运行结果:___相关知识点: 试题来源:...
这里p指向一个数组,*p的意思是首地址的值,如a[], p=a, 那么*p相当于a[0], *p+1就相当于a[0]+1, 而*(p+1)就相当于a[1]下面的i是数组名,所以printf("%d", i)的意思是输出i数组的首地址的值。如果要输出i[0]的值,可以printf("%d", i[0]), 或者printf("%d", *i)...
int *p = &a;p是一个只能指向int型变量地址的指针;还有就是,指针都是指向一个变量的内存地址,并不能说它指向变量;
(int*)*p = 1;你想实现什么啊, 1能赋值给一个“变态指针”?当然,如果p事先有定义还可以考虑,强制转化为int型地址。
你这段程序问题就出在这里。i就是房子,p就是门牌号。你必须先把i建好(也就是给i赋值),然后才能给...