我们可以用指针做什么操作?

时间:2014-12-04 05:54:50

标签: c arrays pointers language-lawyer

我知道这些问题听起来有点奇怪,但是请你说一些我们可以用指针进行操作但是有数组和其他操作吗?

2 个答案:

答案 0 :(得分:2)

您无法有意识地使用sizeof

int arr[6] = {0};
int *p = &arr[0];

sizeof arr / sizeof arr[0] gives 6
sizeof p / sizeof p[0] may give 0, 1, 2 etc (1 on my 32 bit system)

如果array是结构的成员,则赋值运算符(=)将(深度)复制值。但对于指针,只复制指针(浅)。

struct str
{
  char name[100];
  char *city;
}a, b;
...
a = b;
a.name[0] = '\0'; // b.name[0] does not change
a.city[0] = '\0'; // b.city[0] changed

答案 1 :(得分:0)

指针用于存储动态分配的数组的地址以及作为参数传递给函数的数组。在其他情况下,数组和指针是两个不同的东西,

更多你可以看一下这个网址  http://www.geeksforgeeks.org/difference-pointer-array-c/