Pointers

返回

用数组名和指针赋值程序

#include <stdio.h> 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 <stdio.h> 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 */
返回