数组
#include <stdio.h>#include <stdlib.h>const int MAX = 3; // 定义 常量最大值 是 3 常量 const/*用一个变量来表示班级的最大人数,或者表示缓冲区的大小为了满足这一要求,可以使用const关键字对变量加以限定:const type name = value;const 也可以和指针使用 可以限制 指针变量本身方法const int *p1;int const *p2;p1和p2 数据是只读的 ,值可以修改int * const p3; 只读 p3 指针的值不能被修改*/int main(int argc, char *argv[]) {int Array[] ={10,20,30}; // Array 数组int i;for (i=0;i<MAX;i++){printf(" Value of Array[%d]=%d\n",i,Array[i]); //输出数组的值}return 0;}
数组取值
#include <stdio.h>#include <stdlib.h>//const int MAX = 3;void addx(int a,int b,int *c){*c=a+b;}int main(int argc, char *argv[]) {// int c[5] = {1,2,6,7,5};// int d[][3]={// {0,2,3},// {4,6,6},// {7,8,9},// };// int *ptr;// int f=10;// ptr = &f;// *ptr =20; 指针修改变量的值// printf("%d",*ptr); //取数组的值 可以替换为 ptr[0]//指针 ptr +1 = ptr +1 =ptr + sizeof(int) 类型长度int nRet;addx(1,2,&nRet); //调用函数printf("%d",nRet);//输出 结果 3printf("%#xp\n",&nRet); //变量不能使用* nRte 取值//输出结果 0x65fe1cpreturn 0;}
指针数组的简单使用
#include <stdio.h>#include <stdlib.h>const int MAX = 3;int main(int argc, char *argv[]) {int Array[]={10,20,30};int i,*ptr[MAX]; // ptr 指针for (i=0;i<MAX;i++){ptr[i]=&Array[i];//赋值为整数的地址}for (i=0;i<MAX;i++){printf("Value of Array[%d]=%d / address is %#xp /The address of the array is %#xp\n",i,*ptr[i],&ptr[i],&Array[i]);//输出值 指针数组的值 指针数组的地址 数组的地址/* 输出结果Value of Array[0]=10 / address is 0x65fda0p /The address of the array is 0x65fdccpValue of Array[1]=20 / address is 0x65fda8p /The address of the array is 0x65fdd0pValue of Array[2]=30 / address is 0x65fdb0p /The address of the array is 0x65fdd4p*/}return 0;}
二维数组
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {int a[3][3]={{1,2,3},{4,5,6},{7,8,9},};int (*p)[3]; //int (*p)[3] 声明一个数组有三个元素//p 二维数组 首地址//*p 第一个数组的首地址p=a;printf("%d\n",*p[2]+1); //*p[2] 取的是7 如果想取 8 加 一*p[2]+1 前面就说过 二维数组就是行和列 可以这样去看 第三行加1//printf("%d\n",p[7]); 不加[3]return 0;}
变参传递
#include <stdio.h>#include <stdlib.h>#include <stdarg.h>int printStr(int a,...){va_list v1;int n=0;va_start(v1,a);for (int i=0;i<a;i++){n+= va_arg(v1,int);}va_end(v1);return n;}int main(int argc, char *argv[]) {int a=printStr(3,10,20,30);printf("%d\n",a);return 0;}
变参传递 https://blog.csdn.net/qq_16628781/article/details/72717008
