今天对昨日视频教程中的代码进行了实践分析。
以下是代码:
#include <stdio.h>
int main ()
{
char a='F';
int b=123;
char *pa=&a;
int *pb=&b;
printf("a=%c\n",*pa);
printf("b=%d\n",*pb);
*pa+=1;
*pb+=1;
printf("now,a=%c\n",*pa);
printf("now,b=%d\n",*pb);
printf("size of pa = %d\n",sizeof(pa));
printf("size of pb = %d\n",sizeof(pb));
printf("the addr of a is: %p\n",pa);
printf("the addr of b is: %p\n",pb);
return 0;
}
通过程序的运行结果可以看出整型与字符型所对应指针占用的空间为8个字节,因此下方地址相差的大小为8(16位数字)。
对于指针还有以下需要注意:
星号为间接运算符(indirection operator)
“”后跟一个指针名或地址时,“”给出存储在指针指向地址上的值。
EG:
nurse = 22;
ptr = &nurse;//指向nurse的指针
val = *ptr;//把ptr指向的地址上的值赋给val
执行以上三条语句的最终结果是把22赋给val。
如果有什么问题,欢迎与我交流讨论。