Pointers
返回
用数组名和指针赋值程序
#include
int main(void)
{
char ss[] = "xyzabcde";
char *p = ss; //数组的地址设定
int i;
for (i=0; i<=7; i++)
putchar(ss[i]);
putchar('\n');
for (i=0; i<=7; i++)
putchar(p[i]);
putchar('\n');
for (i=0; i<=7; i++)
putchar(*(ss+i));
putchar('\n');
for (i=0; i<=7; i++)
putchar(*(p+i));
putchar('\n');
return 0;
}
/*
程序执行结果(相同)
xyzabcde
xyzabcde
xyzabcde
xyzabcde
*/
判断数值正负的程序
#include
int (*get_sign)(); //函数的指针宣言
int iget_sign(int *a); // 返回整数的原型(ProtoType)
int fget_sign(float *a); // 返回浮动小数点的原型(ProtoType)
int main(void)
{
int sgn, idt = 80;
float fdt = -3.14;
get_sign = iget_sign;
sgn = get_sign(&idt);
printf("data:%d sgn:%d\n", idt, sgn);
get_sign = fget_sign;
sgn = get_sign(&fdt);
printf("data:%f sgn:%d\n", fdt, sgn);
return 0;
}
int iget_sign(int *a)
{
if (*a == 0) return 0;
else if (*a > 0) return 1;
else return -1;
}
int fget_sign(float *a)
{
if (*a == 0) return 0;
else if (*a > 0.0) return 1;
else return -1;
}
/*
运行结果
data:80 sgn:1
data:-3.140000 sgn:-1
*/
返回