C语言杂记1

本文详细介绍了C语言中的指针概念,包括指针的定义、符号含义、初始化、左值与右值、野指针的防治、NULL的定义、const修饰变量的作用、数组与指针的关系以及指针类型的匹配问题。还探讨了sizeof和strlen的区别以及宏定义和typedef的使用。
摘要由CSDN通过智能技术生成

一、指针是什么?
int *p; 定义一个指针变量p。
因为p是局部变量,所以也遵循C语言局部变量的一般规律(定义局部变量并且未初始化,则值是随机的),所以此时p变量中存储的是一个随机的数字。
在使用指针前,需进行绑定,才能解引用。

二、符号
1、星号 *
(1) C语言中*可以表示乘号,也可以表示指针符号。
(2)星号在用于指针相关功能的时候有2种用法:第一种是指针定义时,*结合前面的类型用于表明要定义的指针的类型;第二种功能是指针解引用,解引用时*p表示p指向的变量本身。

2、取地址符 &
使用时直接加在一个变量的前面,然后取地址符和变量加起来构成一个新的符号,这个符号表示这个变量的地址。

三、指针的定义并初始化

int a = 32;  int *p = &a;
//或者
int a = 32;  int *p;  p=&a;

四、左值和右值
赋值运算符左边的叫左值,右边的叫右值。
当一个变量做左值时,编译器认为是这个变量所对应的那个内存空间;
当一个变量做右值时,编译器认为是这个变量的值。

五、野指针
指针指向的位置是不可知的,很可能触发运行时的段错误。野指针的错误来源是指针定义后没有初始化,也没有赋值,然后去解引用。
如何防止野指针?
第一点:定义指针时,同时初始化为NULL
第二点:在指针解引用之前,先去判断这个指针是不是NULL
第三点:指针使用完之后,将其赋值为NULL
第四点:在指针使用之前,将其赋值绑定给一个可用地址空间

六、NULL
在C++中 NULL是0; 在C中是强制类型转换为void * 的 0。

七、const
const是用来修饰变量,表示这个变量是常量。
第一种:const int *p; //p指向的变量是const的
第二种:int const *p; //p指向

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值