微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 问一个二维数组和指针的问题?

问一个二维数组和指针的问题?

时间:10-02 整理:3721RD 点击:
比如定义一个二维数组int a[3][5], 我们知道a是这个二维数组的首地址,a[0]是第一行元素的首地址,假设这个二维数组的第一个元素a[0][0]值赋1,a[0][0]元素的地址值是1000,那么a[0]的地址值应该是1000,取里边的值,即*a[0]就是1,那么a的地址值也是1000.取里边的值,a可以看成指向数组指针的指针,所以*a的值也就是1000.那么我的问题是1000这个地址里放的值既可以是1000也可以是1?该怎么理解呢?以前写程序没怎么用到二维数组这块,今天无意间发现了这个问题,求解决!

先给你给你一个程序

  1. #include <stdio.h>

  2. int main(int argc, char **argv)
  3. {
  4.         int a[3][5];
  5.        
  6.         a[0][0]  =1;
  7.        
  8.         printf("%d\r\n",*a[0]);
  9.         printf("%d\r\n",a[0]);
  10.         printf("%d\r\n",a);
  11.         printf("%d\r\n",*a);
  12.        
  13.        
  14.         printf("hello world\n");
  15.         return 0;
  16. }

复制代码


其实这里,你有一个误区,实际上  二维数组中  *a  与  a[0] 是等效的,我相信你已经明白了

指针 相关文章:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top