博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言学习 二维指针,二维数组和指针(C语言)
阅读量:6279 次
发布时间:2019-06-22

本文共 943 字,大约阅读时间需要 3 分钟。

int *p,a[5],b[3][4];

指针变量给一维数组赋值,可以写成p=a;或则p=&a[0];

二维数组需要写成 p=b[0];

以下为指针与二维数组实例:

#include  

main() {

int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int (*p)[4]=a;

printf("%d\n",*(*(p+2) + 3));

}

输出结果为:

23

===========================

应该注意指针数组和二维数组指针变量的区别。这两者虽然都可用来表示二维数组,但是其表示方法和意义是不同的。

二维数组指针变量是单个的变量,其一般形式中”(*指针变量名)”两边的括号不可少。

而指针数组类型表示的是多个指针(一组有序指针)在一般形式中”*指针数组名”两边不能有括号。

int (*p)[3];

表示一个指向二维数组的指针变量。该二维数组的列数为 3或分解为一维数组的长度为3。

int *p[3]

表示 p 是一个指针数组,有三个下标变量 p[0],p[1],p[2]均为指针变量。

==================================

利用指向指针的指针实现:

#include

main()

{

char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer desighn"};

char **p;

int i;

for(i=0;i<5;i++){

p=name+i;

printf("%s\n",*p);

}

}

--------------------

文件t.c

#include

main(){

char *ary[]={"tomcat","resin","apache","Nginx","Lighttpd"};

char **p;

p=ary;

int i;

for(i=0; i<5;i++)

printf("%s\n", *p++);

}

#gcc t.c -o t

#./t

输出以下内容:

[root@bogon c]# ./t

tomcat

resin

apache

Nginx

Lighttpd

转载地址:http://rknva.baihongyu.com/

你可能感兴趣的文章
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
vim使用点滴
查看>>
embedded linux学习中几个需要明确的概念
查看>>
mysql常用语法
查看>>
Morris ajax
查看>>
【Docker学习笔记(四)】通过Nginx镜像快速搭建静态网站
查看>>
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>
关于FreeBSD的CVSROOT的配置
查看>>
基于RBAC权限管理
查看>>
基于Internet的软件工程策略
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>