c语言数组怎么用 c语言用指针给数组排序和插入?
c语言用指针给数组排序和插入?
#包括和限制。H>#define size 8//element array int main(){int i,nums[size]={13,27,38,49,65,76,97},N,index,*P=&nums[size-1]printf(“original array:”)for(i=0I<size-1i)printf(%d”,nums[i])printf(“”N输入要插入的数字:”)scanf(%d”,&n)printf(“input要插入的数字后面:”)scanf(%d”,&index)while(P>&nums[index]){*P=*(P-1)P--}*P=n printf(”inserted array:”)for(I=0I<sizei)printf(%d”,nums[I])return 0}
宏定义数组不能动态增加其长度。只能通过修改宏来重新编译它。例如,由#define n 100int a[n],B[n],C[n]定义的ABC是100个元素。如果您修改#define n 1000,它是所有1000个元素。
C语言实现宏定义数组增加长度,不用指针?
简而言之,指针是表示地址的无符号整数。
所以仅仅理解指针是不够的。您还需要知道指针指向的数据空间是如何排列的。这可能涉及到一些与特定CPU/OS相关的知识。如果我们能用计算机体系结构的知识来理解它,它会更深刻、更准确。
例如:
如何存储float/double/long double?
如何在数据空间中组织阵列?
字符串是如何存储的?
如何存储结构和联合体?
位域组织
具体CPU相关部分如下:
整数的存储将涉及CPU大小的指定
浮点数的存储直接关系到FPU的设计
此外,还有一些扩展知识,涉及内存的分配和释放:如何在程序中分配内存?(malloc/free)
什么是堆和堆栈?
总而言之:指针是地址和整数。但要充分利用它,我们需要了解计算机存储空间的分配。困难在这里,突破在这里。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。