声明带有*的变量
char* x;short* y;int* z; float* f;double* d;Student* st
cahr** x;short** y;int** z;float** f···
char****** x;short****** y;···
声明指针总结:
1、带有*的变量类型的标准写法:变量类型* 变量名
2、任何类型都可以带* 加上*以后是新的类型
3、*可以是任意多个
字节宽带总结:
1、带*类型的变量赋值时只能使用“完整写法”.
如 int* a; a = (int*)1;
2、带*类型的变量宽度永远是4字节、无论类型是什么,无论有几个*.
++/-- 总结
1、不带*类型的变量,++或者-- 都是加1 或者减1
2、带*类型的变量,可是进行++ 或者 --的操作
3、带*类型的变量,++ 或者 -- 新增(减少)的数量是去掉一个*后变量的宽度
求差值总结:
1、带*类型的变量可以加、减一个整数,但不能乘或者除.
2、带*类型变量与其他整数相加或者相减时:
带*类型变量 + N = 带*类型变量 + N*(去掉一个*后类型的宽度)
带*类型变量 - N = 带*类型变量 - N*(去掉一个*后类型的宽度)
1、类型转换
2、&符号的使用
(1)&可以取任何一个变量的地址
(2)&a 的类型就是a的类型 + *
变量类型原来前有* 才可加* 如: int x = 10; int* px = &x; int x1 = *px;//int* x *x==int 与&相反
3、用指针操作数组
总结:
1、&arr[0]代表取数组中第一个元素的地址,可以省略为数组名.
2、*(p+i) = p[i]