c语言中指针数组的使用方法,C语言的指针数组

1,C语言的指针数组# include void main() { void exchange(char *name[],int n); char * name[]={"January","February","March","April","May","June","July","August","September","October","November","December"}; int n; printf("请输入1-12数字"); scanf("%d",&n); exchange(name,n); } void exchange(char *name[],int n) { printf("%s\n",name[n-1]); }【c语言中指针数组的使用方法,C语言的指针数组】
2,指针数组函数的用法请参考: #include <stdio.h> const int fun1(int a,int b) return a+b; }; const int fun2(int a,int b) return a-b; }; typedef const int (* Fun)(int a,int b); //把 int 返回值 两个int参数的函数定义成Fun函数指针类型 int main() Fun f[2]=int temp[2]; /*int i; for(i=0;i<2;i++) temp[i]=f[i](1,1); */temp[0]=f[0](3,6); temp[1]=f[1](7,4); printf("%d %d\n",temp[0],temp[1]); return 0; }1.如果是c语言 。是不会出错的 。c不对数组下标做强制检查 。2.其实是一样的 。可以指向 。没学指针之前学的下标法却明确指出不能引用范围之外的 。这只是说会有危险 。引用或修改数组范围之外的内存单元往往会出现一些问题(尤其是修改,因为那些内存单元可能存放着一些重要的数据) 。但是就语法而言,下标法是引用范围之外的 。这在语法上没错 。只是很危险 。给您举个例子 。#include<stdio.h>int main() int a[8],b; a[10]=1; b=a[10];//虽然可以,但有时候会引起致命错误 。千万别这样写 。printf("%d",b); return 0;} 。。
3 , C语指针数组兄弟 楼主要的是随即输入的哦#include"stdio.h"#define N 10int main(){int *p;int i,j;int a[N];p=a;//把a数组的首地址赋予指针P的 //for(i=0;i# include# define M 10 void main() { int a[M],*po; po=a; while(po # define M 10 void main() { int *a[M],**po; po=a; while(po#include typedef THE_MARY_MAX_NUM 10 void main() { int iMary[THE_MARY_MAX_NUM]; memset(iMary, 0xff, sizeof(iMary)); int *pMary = iMary; for(int iIndex = 0; iIndex < THE_MARY_MAX_NUM; iIndex++){ printf("Input you number:\n"); int iInPutNumber; scanf("%d", &iInPutNumber); iMary[iIndex] = iInPutNumber; } printf("use the pointer output\n"); for(int iOutIndex = 0; iOutIndex < THE_MARY_MAX_NUM; iOutIndex++){ printf("%d", pMary[iOutIndex]); } }#includevoid main() { int aa[] = {1,2,3,4,5,6,7,8,9,0}; int *p = aa; int i; for(i = 0;i < 10;i++) { printf("%d ",p[i]); } }

    推荐阅读