1.int(*t)(int int ) 函数指针
2.int **a[3][4] 在这里a为数组,【a要是和*括起来表示指针】,每个元素为1个指针
所占的内存空间=数组长度 * sizeof(类型标识符)12*sizeof(int**)=48
3.typedef int * T;T a[10]; 等价于int*a[10]
4.object o[3]={{'a','b','c',},{'d','e','f'},{'g','h','i'}};
*(char*)((char*)(cur)+2) 先进行类型转换再加2跳过两个字节,输出c
(char*)(cur+2) 先加再进行类型转化&o[2] 输出g
5.char*="AAA";
printf("%s",s);
s[0]='B'; 妄图修改字符串常量,不可行
改为 char str[]="AAA"; char*s=str;
6.const char *p1="abc";const char*p2="abc";
指向的地址相同
const char str1="abc";const char str2="abc";
地址不同
7.const char*p1="hello"; *p1不能改
char*const p2="world"; p2不能改
int const c=21;变量c的值不能改
const int*d=&a; 指针变量d指向的值不能改变
int *const e=&b;指针的指向不能改变
int const*f const=&a;指针不能改变,指针指向的值也不能改变
const在*左边 指针指向常量
const在*右边 指针本身为常量
8.char *p="abc"; char*q="abc123";
while(*P=*q) printf("%c,%c",*p,*q);
编译报错,字符串常量不能被修改
9.#define INT_PTR int*
typedef int*int_ptr
INT_PTR a,b;
int_ptr c,d;
换完之后b不是指针
10. int fun(int*p[4])fun 的合法参数为int**a
形参是一个指针数组,指针指向一个地址,地址中存放的内容也是指针
11.非法指针是想想的内存已经被回收,或者指向一个错误的地址
指针易错点总结1
最新推荐文章于 2022-08-15 00:08:50 发布