函数的重载:
# include <stdio.h> void swap(void) { printf("呵呵!\n"); return; } void swap(int i, int j) { printf("哈哈!\n"); return; } int main(void) { swap(); swap(1, 2); //函数名相同,形参个数不同,也不是同一个函数。 int i = 3; printf("i = %d\n", i); //free(); //free函数,释放变量所占内存 printf("i = %d\n", i); return 0; }
被调函数修改主函数中变量的值:
# include <stdio.h> void change(int * p) { *p = 10; //等价于:i = 10; return; } int main(void) { int i = 3; printf("修改前:i = %d\n", i); change(&i); //要想被调函数修改,则必须发送地址。 printf("修改后:i = %d\n", i); return 0; }
空指针NULL:
# include <stdio.h> int main(void) { int * p; //printf("%d", *p); //读取了一块无权限访问的空间而导致程序崩溃。 int * q; q = NULL; printf("%d", *q); //空指针指向的内存空间不可读写,会直接出错。 return 0; }
指针变量的运算:
# include <stdio.h> int main(void) { int i = 3; int j = 5; int a[50]; int * p = &i; int * q = &j; q - p; //不在同一存储空间的两个变量i、j的地址相减无意义。 p = &a[1]; q = &a[44]; printf("%d\n", q-p); //即为十六进制数的相减,然后以十进制输出。 return 0; }
指针变量所占字节:
# include <stdio.h> int main(void) { int i = 3; int len; len = sizeof(char * ); // sizeof 函数,返回数据类型所占字节数。 printf("%d\n", len); return 0; } /* 经多次实验,一个指针变量无论是什么类型指针变量,指针变量都占4个字节(32位机)。 */
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/lfhappypain/article/details/47208541