指针算术运算:
//减法
//#include<stdio.h>
//int main() {
// int var[] = { 10,100,200,400,9,12 };
// int i, *ptr;
// ptr = &var[2];
// ptr -= 2;
// printf("ptr指向的值=%d", *ptr);
//
// getchar();
// return 0;
//}
指针比较
//#include<stdio.h>
//int main() {
// int var[] = { 10,100,200 };
// int *ptr;
// ptr = var;
// if (ptr == var[0]) {//错误类型不一样
// printf("ok1");
// }
// if (ptr == &var[0]) {//可以
// printf("\nok2");
// }
// if (ptr == var) {//可以
// printf("\nok3");
// }
// if (ptr >= &var[1]) {//可以比较,但是返回false
// printf("\nok4");
// }
// getchar();
// return 0;
//}
//#include<stdio.h>
//const int MAX = 3;
//int main() {
// int var[] = { 10,100,200 };
// int i, *ptr;
// ptr = var;
// i = 0;
// while (ptr <= &var[MAX - 2]) {
// printf("var地址[%d]=%x\n", i, ptr);
// printf("var值[%d]=%d\n", i, *ptr);
// ptr++;
// i++;
// }
// getchar();
// return 0;
//}
指针数组:
//#include<stdio.h>
//const int MAX = 3;
//int main() {
// int var[] = { 10,100,200 };
// int i, *ptr[3];
// i = 0;
// for (i = 0; i < MAX; i++) {
// ptr[i] = &var[i];
// }
// for (i = 0; i < MAX; i++) {
// printf("var值[%d]=%d ptr[%d]本身地址=%p \n", i, *ptr[i],i,ptr[i]);
// }
// getchar();
// return 0;
//
//}
//#include<stdio.h>
//
//void main() {
// //定义一个数组,该数组的每个元素,指向的是一个字符串
// char *book[] = {
// "book1",
// "book2",
// "book3",
// "book4"
// };
//
// //遍历
// int i, len = 4;
// for (i = 0; i < len; i++) {
// printf("\nbook[%d]走向字符串=%s",i, book[i]);
//
// }
// getchar();
//}