C语言:2026.1.18

1.野指针:指针指向位置不确定
建议对指针进行创建时,初始化为空;NULL;
形成:
(1)未初始化
(2)指针越界
(3)指针指向的空间被释放了
2.规避
(1)初始化为空,判断是否为空;
(2)避免越界
(3)指针置空,安全检查;
3.传值调用和传址调用;
传值调用:直接将值传递,形参拷贝实参的值;
传址调用:通过传递变量的地址,函数中通过指针操作的是变量本身;
!!!要想通过函数传参修改某一个变量的内容,必须传递这个变量的地址;
4.指针和一位数组;数组名的意义
(1)数组名就是首元素地址;
(2)(arr+i)=arr[i];
(3)sizeof(arr) 计算的是整个数组的大小;
(4)&arr,表示拿到整个数组的地址;
(5)其余情况,arr均表示首元素地址;
(6)arr=&arr[0]=&arr
arr,&arr[0] 均跳过4个字节,因为跳过一个元素
&arr,跳过的是整个数组;类型是数组指针;
5.通过指针访问数组
*(arr+i)
=arr[i]
6.一维数组传参本质
7.二级指针
8.修改二级指针指向
9.指针数组是存放指针的数组;
10.栈区内存分配:高到低
数组:低到高
11.打印字符串%s 打印地址%p;
12.字符指针变量:
char str[]="hello world" 是将常量区当中的字符串内容拷贝了一份放在字符数组
const char
str="hello world" 将常量区中字符串地址保存下来
作业:
1.野指针形成和方法
2.船只调用和传址调用 修改整型值 修改指针指向
3.指针数组 创建形式 int* arr[5]
4.字符指针,字符串赋值给字符数组 和赋值给字符指针的区别,字符串不可修改const char*="hehe"
5.二级指针;
6.数组和一级指针的关系,(数组传参的本质) 理解arr &arr[0] &arr的值和意义;

posted @ 2026-01-19 17:04  白白0419  阅读(2)  评论(0)    收藏  举报