指针进阶
文章平均质量分 56
优雅人字拖
发布文章仅是自己学习过程和总结的记录,如有错误,请多多指教。多运动多出汗,少看网站多实战,管住嘴迈开腿,你的人生才会美。
展开
-
指针进阶学习(4)-指针笔试题
1、int main(){ int a[5][5]; int(*p)[4]; p = a; printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]); return 0;}//p为数组指针,指向元素个数为4的整形数组,所以下面p[4]=p+4,跳过四个为四个元素的数组,而p[4][2]=*(p+4)+2即以刚刚的基础上在跳过两个元素。同理a[4][2]为二维数组,二...原创 2021-10-23 14:34:30 · 274 阅读 · 0 评论 -
指针进阶学习(3)-指针笔试题
1、int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); //&a表示数组地址,加一即跳过整个数组后的地址,经过强类型转换赋给ptr printf( "%d,%d", *(a + 1), *(ptr - 1)); //a为数组名表示首元素地址,加一即第二个元素地址,解引用即第二个元素2. //ptr指向整个数组后面,减一即指向元素5,解引用就得到5. return 0...原创 2021-10-22 23:41:39 · 136 阅读 · 0 评论 -
指针进阶学习(2)-指针和数组计算sizeof和strlen的笔试题解析
特别要注意的是:数组名表示首元素的地址、sizeof(数组名)表示计算整个数组大小,单位字节、&数组名-表示取整个数组的地址。32位平台下地址为四个字节,64位平台下为八个字节//一维数组int a[] = {1,2,3,4};printf("%d\n",sizeof(a)); 16 —sizeof(数组名)计算的是数组总大小 单位是字节printf("%d\n",sizeof(a+0)); 4/8—a+0 使得sizeof里面不再是数组名(表示整个数组),所以为首元素 ...原创 2021-10-22 17:35:08 · 153 阅读 · 0 评论 -
指针进阶学习(1)-常量字符串存储问题
#include <stdio.h>int main(){ char str1[] = "hello bit."; char str2[] = "hello bit."; char *str3 = "hello bit."; char *str4 = "hello bit."; if(str1 ==str2) printf("str1 and str2 are same\n"); else printf("str1 and str2 are not .原创 2021-10-22 17:09:36 · 165 阅读 · 0 评论