C的一些总结

变量的地址为指针,存放地址的变量为指针变量。

Sizeof(指针变量)为4,因为存放地址的变量为计算机内部的地址总线宽度即32,但是在64位的计算机系统也是为32,即4个字节.   Sizeof(arr)arr为数组名,得到的值为数组的长度。

 

对于二维数组比如a[3][4],a代表数组元素的地址,现在的首元素不是一个简单的整型元素,而是由4个整型元素所组成的一维数组,因此a代表的是首行(即第0行)的首地址。a+1代表第1行的首地址。a[0]、a[1]、a[2]既然是一维数组名,c语言规定了数组名代表数组首元素地址,因此a[0]代表一维数组a[0]中第0列元素的地址,即&a[0[[0].

 

Struct aiocb my_aiocb;

Bzero((char *) &my_aiocb,sizeof(structaiocb));

(char *)&my_aiocb是将my_aiocb强制类型转换为字符指针类型。因为指针变为字符指针类型后,那么+1意味着只是往后移动一个字节,这个目的在很多时候会用到的。

Int a ;

(char *) a ,a 原来是一个整型变量,现在这样转换之后就是为字符指针变量,所以变量a里面的内容就变成一个地址了,而且这个地址指向的是一个字符型数据。

 

Int *a[6],首先[]优先级高点,所以首先它是一个数组,然后与*结合,所以它是指针数组,即这个数组的每个成员都是指针。

 

几个概念:函数指针,指针数组,数组指针,函数指针数组。

函数指针:指向函数的指针。

数组指针:指向数组的指针。

指针数组:数组的每个成员都是指针。

函数指针数组:数组的每个成员都是指向函数的指针。

 

int *p;这种型式定义的指针变量是空指针,没有指向任何的内存,所以不能直接使用,一般都说配套malloc()一起使用。 还有另一种说法就是这样定义的指针变量指向的内存是不确定的,有可能指向比较重要的内存,所以最好不要乱操作这个指针指向的内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值