C指针学习(C Premier Plus 学习笔记)
数组和指针:这里 flizny是一个数组。 flizny == &flizny[0]; //数组名是该数组首元素的地址,两者都是常量,在程序的运行过程中,不会改变。但是,可以 把数组名赋值给指针变量 , 然后可以修改指针变量的值 。 例: short dates[4]; short *pti; pti = dates; //数组名是数组首元素地址,将地址赋值给指针。 C中,指针加1,指的是增加一个存储单元。对于数组来说,意味着加1后的地址是 下一个元素的地址 ,而不是下一个字节的地址(声明指针时要指向对象类型)。 1 dates + 2 == &dates[ 2 ]; // 相同的地址 2 *(dates + 2 ) == dates[ 2 ]; // 相同的值 3 4 // ar[n] == *(ar+n) 5 6 *(dates+ 2 ); // dates 第3个元素的值 7 *dates+ 2; // dates第一个元素的值加2 datas++ //指针递增,指向数组的下一个元素 函数、数组和指针 处理数组的函数,该函数返回数组中所以元素之和。 total = sum(marbles); //可能的函数调用 其中, 数组名marbles是数组首元素的地址,故这个函数传递的是一个地址 ,因此,函数原型中的形参是一个指针,int sum