码迷,mamicode.com
首页 > 其他好文 > 详细

C陷阱与缺陷 2

时间:2014-05-04 10:04:48      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   color   width   

1,数组

对数组只能进行两种操作,1确定数组的大小,2获得数组第一个元素的指针,其他的操作均是通过指针来实现的。

1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
main()
{
    int a[2][3]={{1,2,3},{4,5,6}};
    int *p,(*q)[3];
    p=a[2];
    q=a;
}

int a[2][3]={{1,2,3},{4,5,6}};

a为一个数组(A),数组的维度为3,元素为数组(B),数组(B)的维度为4 元素为int 类型

a[2]为数组(A)的一个元素,为数组(B)的首地址

p=a[2]; 为p指向a[2]的第一个元素的地址,第一个元素为 int 类型,p为指向int 类型的指针,故是相符的

p=a,是不正确的,a为指向数组(B)的指针

q为指向数组(B)的指针,故q=a是正确的。

下标引用和指针之间的关系?

1
2
3
i=a[2][3];
i=*(a[2]+3);
i=*(*(a+2)+3);

根据指针的而不同,吃处+3,地址可能是不同的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
main()
{
char *p ,*q;
int *a;
p=malloc(sizeof(char));
a=malloc(sizeof(int));
printf("%d \n",p);
printf("%d\n",p+1);
 
printf("%d \n",a);
printf("%d \n",a+1);
}

bubuko.com,布布扣

p为指向char 的指针,p+1的地址是+1

q为指向int 的指针,q+1的地址是+4

2 指针

空指针并非空字符串







C陷阱与缺陷 2,布布扣,bubuko.com

C陷阱与缺陷 2

标签:style   blog   class   code   color   width   

原文地址:http://www.cnblogs.com/chen-/p/3705788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!