2函数指针
函数指针允许你将函数作为参数传递给其他函数,甚至可以将函数赋值给变量。这在实现回调函数、函数表等方面非常有用。
#include//函数类型定义typedefvoid(*FuncPtr)(void);//函数声明voidprintHello(){printf("Hello,World!\n");}intmain(){FuncPtrfp=printHello;//将函数赋值给函数指针fp();//调用函数return0;}
示例代码:
#includeintmain(){intarr5={1,2,3,4,5};//定义数组for(inti=0;i<5;i++){printf("arr%d=%d\n",i,arri);//访问数组元素}return0;}
指针数组:指针数组是由多个指针组成的数组,它们可以指向不同的内存地址,常用于处理字符串。
示例代?码:
#include#includeintmain(){charstr1="Hello";charstr2="World";charstr320;//定义足够大的字符串数组//使用strlen计算字符串长度printf("str1长度:%lu\n",strlen(str1));//使用strcpy复制字符串strcpy(str3,str1);printf("str3=%s\n",str3);//使用strcat连接字符串strcat(str3,"");strcat(str3,str2);printf("连接后的str3=%s\n",str3);//使用strcmp比较字符串if(strcmp(str1,str2)==0){printf("str1和str2相同\n");}else{printf("str1和str2不同\n");}return0;}
1内存对齐
内存对齐是指在内存中分配数据时,使其在内存地址上对齐,以提高数据访问效率。在C语言中,可以使用__attribute__((aligned))来控制内存对齐。
#includetypedefstruct{__attribute__((aligned(16)))inta;__attribute__((aligned(16)))floatb;}AlignedStruct;intmain(){AlignedStructs;printf("SizeofAlignedStruct:%zu\n",sizeof(s));return0;}
校对:董倩(1C0m4pJyqZtPma0S7t9ZFfz4hTykKag)