int指针初始化_C语言 技能提升 系列文章 (四)指针

今天和大家聊聊C语言中的指针。

e788f05544bbc94f144e2b803c5187ac.png

说指针之前,我想简单聊聊内存和数据类型。我们都知道,程序是加载到内存中运行的。如果我们的程序要访问数据,也是要先将数据从硬盘中读取到内存,才能对数据进行操作。

那么,程序在要处理数据时,如何知道数据在哪里?提供数据位置的对象就叫做指针。指针其实就是一个内存的地址。

好了,我们现在知道了我们要访问的数据在哪里,那么我们怎么知道在这个内存地址里存的数据是什么?他们的大小呢?能提供这些信息的,就是数据类型。

现在,我们应该有清醒的认识了,程序想要访问数据,要知道数据在内存中的位置和数据的类型信息。只有这样,程序才能准确的执行他的任务。

指针的定义与初始化

现在我们可以展开讨论指针了。

// 定义指针很简单,数据类型指明了它指向的内存地址存放的数据类型。// * 符号,表明了这是一个指针变量。// *符号的位置没有语法要求,可以是和type_name连在一起,也可以不和任意一边连在一起。type_name *pointer_name;// 初始化的语法也简单。可以用&符号取得另外一个变量的地址。// 在暂时不知道要赋的值时,可以赋值NULL,NULL代表地址为0。// 也可以直接赋值一个地int a = 6, b =7;int *integer_ptr1 = &a;int *integer_ptr2 = NULL;int *integer_ptr3 = 0x40000000;int a = 6;integer = &a;

指针与const

const关键字在和指针在一起使用时,对于新手来说绝对是够头疼的了。

// 先看看如何给const指针赋值const int value = 5; int non_const_value = 6;int *ptr = &value; // compile error: 无法把 const int* 转换成 int*const int *ptr = &value; //  这样才OK*ptr = 6; // 还是错误,我们无法改变一个const变量// 我们再来看看另外一种写法// 这种写法的意思是,这个指针的值是不能变的,它只能指向value的地址。// 而不是value是const变量。// 所以,我们定义的时候就要给它赋值,之后就不能更改了。int * const ptr_con = &non_const_value;  // 那么这个呢? 大家应该猜到了,指针和指针所指向的地址都不允许更改。const int * const const_ptr_const = &value;

函数指针

在C语言中,指针还可以指向函数。

void fun(int a) {     printf("Value of a is %d", a); }   int main() {     // fun_ptr 是一个指向 fun()  的指针    void (*fun_ptr)(int) = &fun;         // 通过函数指针fun_ptr来调用 fun()     // 这里的例子非常简单,之后我们讲到事件处理代码的时候,    // 函数指针会非常有用    (*fun_ptr)(10);       return 0; } 

以上就是今天分享的C语言知识,觉得有帮助的朋友,请点赞加关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值