学习目标:
学习内容:
遗忘内容
数组名表示的是数组首元素地址
但是有两个例外:
1)sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小
2)&数组名,数组名表示整个数组,取出的是整个数组的地址
指针类型决定了指针被解引用时访问的权限。
例如整形指针(int*)解引用4个字节;字符指针(char*)解引用1个字节…
指针类型决定了指针向前或者向后走一步,能走多大距离(字节)。
int* +1 --> +1sizeof(int)==+4
char +1 --> +1sizeof(char)==+1
int +n --> +nsizeof(int)==+n4
char* +n --> +nsizeof(char)==+n1
指针的注意事项(避免写出野指针)
1)指针不能像变量一样定义后不给赋值,如果没有值可赋,就赋值NULL
int* pa=NULL;
2)在函数中不能返回指针,因为函数中使用的指针仅限于函数体内,出了函数后那个指针生命周期就结束了。
int* test()
{
int a =10;
printf("%d\n",a);
return 0;
}
int main ()
{
int *p = test();
*p = 100;
return 0;
}
3)不要把指针指到定义的范围外
指针±整数:跳字节(根据指针类型的不同跳的字节也