23 指针
狮子座硅农(Leo ICer)
努力成为卓越的芯片研发人员!
展开
-
23.5 指针与结构体
要通过指针p访问结构体成员可以写成(*p).c和(*p).num,为了书写方便,C语言提供了->运算符,也可以写成p->c和p->num。原创 2022-09-20 15:23:01 · 267 阅读 · 0 评论 -
22.3 指针与数组
参数写成指针形式还是数组形式对编译器来说没区别,都表示这个参数是指针,之所以规定两种形式是为了给读代码的人提供有用的信息,如果这个参数指向一个元素,通常写成指针的形式,如果这个参数指向一串元素中的首元素,则经常写成数组的形式。如上图所示,pa指向a[1],那么pa+2指向a[3]。事实上,E1[E2]这种写法和(*((E1)+(E2)))是等价的,*(pa+2)也可以写成pa[2]。首先指针pa指向a[0]的地址,注意后缀运算符的优先级高于单目运算符,所以是取a[0]的地址,而不是取a的地址。原创 2022-09-20 15:01:36 · 70 阅读 · 0 评论 -
23.2 指针类型的参数和返回值
py其实是读写main函数的i和j。尽管在swap函数的作用域中访问不到i和j这两个变量名,却可以通过地址访问它们,最终swap函数将i和j的值做了交换。上面的例子还演示了函数返回值是指针的情况,return px;最后的结果是swap函数的px指向哪就让main函数的p指向哪。我们知道px指向i,所以p也指向i。所以px和py分别指向main函数的局部变量i和j,在swap函数中读写。调用函数的传参过程相当于。原创 2022-09-20 14:24:32 · 131 阅读 · 0 评论 -
23.1 指针的基本概念
不同类型,先强制转换再赋值,如pi是int *型,pc是char *型,不可以pi = pc,应该如下操作。表示定义一个指向int型的指针变量pi,并用i的地址来初始化pi。第一种指针:堆栈有栈顶指针,队列有头指针和尾指针,这些概念中的“指针”本质是一个整数,是数组的索引,通过指针访问数组中的某个元素。用在表达式中提取下标运算符。第二种指针:把一个变量所在的内存单元的地址保存在另外一个内存单元中,保存地址的这个内存单元称为。,访问变量要通过指针间接寻址,这种指针在C语言中可以用一个指针类型的变量表示。原创 2022-09-20 10:52:23 · 399 阅读 · 0 评论