
c指针
当白
大人不华,君子务实
展开
-
7.C语言中一维数组和二维数组的指针区别
Pre:在c语言中a和a[0]和a[0][0]地址是一致的1.二维数组a =[ [0,1,2,3,4], [4,5,6,7,8], [8,9,10,11,12], [12,13,14,15]]二维数组取第一层,取得是里边元素的地址;再取一层取到的才是内容eg:*a取到的是a[0]的地址,也就是a[0][0]的地址*(a+1)取到的是a[1][0]的地址**a取到的是a[0][0]的值2.一维数组b = [1,...原创 2020-08-05 11:57:26 · 227 阅读 · 0 评论 -
1.为什么要有指针?
(0)史前早期的CPU(也许并没有真正的实现)并不如今天的强大,内存读写的指令可能只有:“从*常数*0x1234地址处读入1字节到寄存器a”,或者“把寄存器b的值写入*常数*地址0x5678这个地方”。那个时候没有变量这一说,所有的内存读写都得指定好常数,也就是得把具体的数字(也称为字面量,literal)写死在程序里。换言之,你如果想清空100字节的内存,而每条指令只能对内存中某一个字节进行写入...转载 2018-03-09 17:52:37 · 2372 阅读 · 3 评论 -
2.一个例子了解指针
1."*"的理解 :指针的*主要出现在两个地方,(1)首先是在指针定义时出现的*, * 相当于标识了指针变量,即表明这是一个指针变量(2)其次,指针在使用时也会出现 *,这里的*的取内容的意思,即把指针内存储的东西提取出来使用2. *a 中的 a,指的是指针变量,它存储的是一个地址3. "&" 取地址符实例#include <stdio.h>int main (){int ...原创 2018-03-09 17:54:01 · 242 阅读 · 0 评论 -
3.通过AES加密实例(基于c和oc)进一步了解指针
/* AES加密解密中用到的指针知识——ios,看(1)、(2)、(3)、(4)、(5) */NSData * cipherOperation(NSData *contentData, NSData *keyData, CCOperation operation) { /* void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类...原创 2018-03-09 17:56:33 · 272 阅读 · 0 评论 -
4.指针都有哪些用处?
1) 方便使用动态分配的数组。 找到数组地址,赋给指针,后续调用 2) 对于相同类型(甚至是相似类型)的多个变量进行通用访问。 就是用一个指针变量不断在多个变量之间指来指去,从而使得非常应用起来非常灵活,不过,这招也比较危险,需要小心使用:因为出现错误的指针是编程中非常忌讳的事情。 3) 变相改变一个函数的值传递特性。 说白了,就是指针的传地址作用,将...原创 2018-03-09 17:58:44 · 1198 阅读 · 0 评论 -
5.用指针可能存在哪些问题?
我相信指针的使用一定要很小心,否则可能要忍受程序报错而总找不到错在何处的痛苦. (1)如一个函数返回了一个函数里局部变量的指针,一用就出错; (2)如声明一个指针没有分配空间就传给别一函数使用; (3)如多个线程都在使用同一个内存块,你修我改,甚至有人把它删掉了或不小心让指针指向系统用的内存,另一个人还准备往里读写东西---可能要费心思来同步. (4)如指针指向的内存可能是new malloc出来...原创 2018-03-09 18:00:12 · 464 阅读 · 0 评论 -
6.const char * 、char const *、 char * const 三者区别极简版
const char *ptr; (char类型不能变)char const *ptr; (从ptr地址取出来的内容不能变)char * const ptr; (ptr地址不能变)如有异议,请留言,我们一起在讨论中成长 :)...原创 2018-04-10 16:13:48 · 195 阅读 · 0 评论 -
隐藏和isa :进化返祖以及白马非马(c++)
Pre:Soldier是Person的子类一、概念了解隐藏:子类的某些函数与父类的某些函数重名,此时子类继承了父类的函数,此时可以通过特殊的手段访问父类该函数,这种特性被称为隐藏Isa:父类可以被子类初始化,但是子类不可以被父类初始化(这就是IsA特性)即solider是person但是person不一定是Solider二、用例子展现特性隐藏的方式:(类似于OC的继承)隐藏的特性存在后,如果子类的...原创 2018-07-11 10:34:13 · 250 阅读 · 0 评论