C语言指针与数组表示法及相关应用
指针与数组表示法
在C语言中,指针和数组表示法是非常重要的概念。有时候并不需要复制示例中的单词,比如可以通过将 strtok_s()
返回的指针存储在 pWords
中来避免复制单词。不过,为了让大家获得更多堆内存分配的经验,这里采用了复制单词的方式。
指针和数组表示法可以相互结合使用。之前的示例全程使用了指针表示法,但其实也可以使用数组表示法来操作指向堆内存块的指针变量,只要该内存块用于存储多个相同类型的数据项。例如:
int count = 100;
double* data = calloc(count, sizeof(double));
上述代码分配了足够的内存来存储100个 double
类型的值,并将它们初始化为0.0。内存的地址存储在 data
中。可以像操作包含100个 double
类型元素的数组一样访问这块内存。例如,使用循环为内存设置不同的值:
for(int i = 0 ; i < count ; ++i)
data[i] = (double)(i + 1)*(i + 1);
这样就将值依次设置为1.0、4.0、9.0等等。这里只需使用指针名和方括号内的索引值,就像操作数组一样。但要注意, data
是一个指针而不是数组。 s