您的位置:首页 > 编程语言 > C语言/C++

学习c语言指针的一些小知识

2017-07-20 20:56 204 查看
指针的sizeof()求得值都是固定的:都为4;

数组名在特定的情况下可以当作指针来使用,

数组与数组指针的差异

1、数组不能代表数组指针求数组长度

int main5()
{
int a[5];
int *p = a;

printf ("%d\n",sizeof(a));
printf ("%d\n",sizeof(p));

return 0;


2、数组是个常量不可改变

int main()
{
int a[5] = {1,2,3,4,5};
int *p = a;

int i;
for (i = 0; i < 5; i++)
{
printf ("%d\n", *(p++));
}

for (i = 0; i < 5; i++)
{
printf ("%d\n", *(a++));
}

return 0;
}


// 数组名代表数组首个元素的地址,在某些场合
// 可以当指针使用
int main3()
{
int a[5] = {1,2,3,4,5};
printf ("%d\n", *a);
printf ("%d\n", *(a+1));
printf ("%d\n", *(a+2));
printf ("%d\n", *(a+3));

return 0;
}

int main4()
{
int a[5] = {1,2,3,4,5};
int *p = a;
int i;
for (i = 0; i < 5; i++)
{
printf ("%4d", *(p+i));
}
printf ("\n");
// *(p+i) == *(a+i) == a[i] == p[i]
for (i = 0; i < 5; i++)
{
printf ("%4d", p[i]);
}
printf ("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: