前言
嗨喽,大家好~这里是咸鱼安忆.
现在是学C语言时刻~
C语言当中的指针向来是一个难点
本篇文章针对指针的相关运算列出了一些例题供以研究学习
希望看完本篇文章之后,你能有所收获~
例题一
int main()
{
int a[5] = {
1,2,3,4,5};
int* ptr = (*int)(&a+1);
printf("%d %d",*(a+1),*(ptr-1))
return 0;
}
(a+1) 取出的是第二个元素的地址,解引用之后就是2
(ptr-1) 中ptr里存放的地址是由&a+1得到的,&a取得的是整个数组的第一,+1跳过整个数组,ptr就指向了5后面的地址,而ptr-1得到的就是5的地址了,解引用得到结果5
例题二
struct Test
{
int Num;
char* pcName;
short sDate;
char cha[2];
short sBa[4];
}* p;
//假设p 的值为0x100000
//此结构体20个字节
int main()
{
printf("%p\n",p + 0x1);
printf("%p\n",(unsigned long)p + 0x1);
printf("%p\n",(unsigned int