c语言指针访问数组,C程通过指针间接访问一维数组元素

1,C程通过指针间接访问一维数组元素#include<stdio.h>#define NUM 50int main(void) int a[NUM],i; int *ap; for(i=0;i<50;i++)a[i]=i+10; }i=0; for(ap=a+49;ap>=a;ap--)printf("%d,",*ap);i++;if(i%5==0)printf("\n"); } return 0;}
2,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程通过指针间接访问一维数组元素】
3,能不能帮我举个用指针访问数组的例子简单一些的就好h"int main(){ int a[3]={10;stdio,2}; int *p; p=a,1; printf("%d"#include "函数的指针和数组的指针都是指针,在32位下都占用8个字节对于cpu来说,它们完全相同typedef void(vi*)(int );vi就是函数的指针类型c语言中数组的指针一般指数组的首地址3;i++) printf("%d\n" int* p=&a[0];void main() {int a[3]={0,1,2}#includefor(int i=0;i<
4 , c语言中的指针数组问题*p+i,是先执行*p,然后再加i如int a[2]=int *p;p=a;//p指向数组a,即指向数组a的第一个元素,即1那么*p=1;*p+1=1+1=2;*p+3=1+3=4;*p[i],p[i]本身就是一个指针,*p[i]取p[i]这个指针所指向的内容.如int b[2][2]=int *p[2];//定义指针数组.p[0]=b[0];//p[0]指针指向数组b的第0行的首地址.即指向1p[1]=b[1];//p[1]指针指向数组b的第1行的首地址.即指向3所以*p[0]=1;*p[1]=3*p+i呢 , 这个指的是指针从p这个位置开始向后偏移i个位置后的这个位置上所对应的数 。*p[i]呢,则是一个指针数组,将这个指针数组指向一个正常的数组,则可通过指针数组读出这个正常数组的对应 在这个位置上的值 。*p+i是取*p指向的内容后+i 。结果是一个数值 。*p[i]是指针数组p的第i个指针指向的内容 。结果是另外一个数值 。也可以写成*(p+i) 。你好*p+i 是先执行p+i,然后在解引用的 它是访问某一个元素,但是*p[i]其实就是*(p+i)是要求数组中的每个元素都是指针 访问数组中元素指向的变量其实楼上的说的也是对的希望对你有帮助*p+i是p+i先执行,然后在解引用而*p[i]则要求数组中的每个元素都是指针,取得这个元素,然后再解引用 。简言之:第一个是访问数组中某一个元素,后者是访问数组中元素指向的变量 。5,c语言 指针怎么指向一个结构数组楼上都回答得这么复杂吗?我写简单一点的struct strint n;int s;};void main()分别赋值为1和2,对a[1]中的成员设置为3和4 。注:有些编译器可能不需要最前面的struct来声明结构对象 。struct str *p=a;//声明一个结构指针,并把结构数组的地址赋给该指针 printf("%d",p->n);//访问结构数组对象a[0]中的变量n的值,也就是1printf("%d",(p+1)>n); //访问结构数组对象a[1]中的变量n的值,也就是3 。因为指针p+1就指向了结构数结a的下一个位置,也就是a[1]处 。}类型不同struct student 是一个类型char数组 是一个类型p是指向类型struct student的指针stu[1].name是真相char[]的指针 。c++是强类型语言,类型必须对应你可以通过强制类型转换来实现p = (struct student *) stu[1].name , 但是根据本题目情况,这样产生的结果是错误的int iLen = 5;str* pStr = new str[iLen];str* pNext = pStr;for (int i = 0; i < iLen; ++i)pNext->n = i;pNext->s = i;pNext++;}pNext = pStr;for ()输出类似}main()typedef struct srtint n;int s;}str_xx;//自定义一个结构体str_xx test_str;//按照自定义的一个结构体定义一个结构体str_xx *test_prt;//按照自定义的一个结构体定义一个指针0test_prt = test_str;//把这个指针指向这个结构体test_prt->n = 0;//给结构体变量赋值test_prt->s = 0;//给结构体变量赋值printf("test_prt->n = %d test_ptr->s = %d\n",test_prt->n,test_prt->s);}

    推荐阅读