`
cheng330301560
  • 浏览: 179100 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表

指针小认识

学过C语言的同学都知道指针式什么回事,但是指针从本质上来理解,任何指针存放的值都是一个整数,所以在没有特殊的情况下在32位机的电脑上,任何一种类型的指针都占用4字节,那么平时我们定义的如: int *p; char *p; 这里的int、char并不代表指针的本身类型,而是指向地址里面值的类型   另外指针还可以这么定义 void* p; // 无明确指向类型的指针,意思就是p并不知道他所指向的内存地址里面的数据是什么类型,既然无类型,那么就不可能使用 如:int a=*p这样是错误的
1.什么是WIFI WIFI就是一种无线联网的技术,以前通过网线来连接电脑,而现在通过无线电波来连网,常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围内都可以采用WIFI连接方式进行联网   2.WIFI网卡的状态 WIFI网卡的状态是由一系列的整型常量来表示的   1.WIFI_STATE_DISABLED:网卡不可用 2.WIFI_STATE_DISABLING:WIFI正在关闭 3.WIFI_STATE_ENABLED:WIFI网卡可用 4.WIFI_STATE_ENABLING:WIFI网卡正在打开 5.WIFI_STATE_UNKNOWN:未知网卡 ...
在开发当中有很多时候我们都会发现指针*和++结合在一起使用,那这里我就列举出如何几种常现的用法 int *cp;   *++cp  先执行++指针指向下一个地址再执行*得到该地址的值   *cp++  在这里实际上后缀这个++操作符产生cp的一份拷贝,然后++操作符增加cp的值,使得cp指向下一个内存地址,但在最后要注意是在cp的拷贝上执行间接访问操作的,既我们取出的值还是原来cp没有指向下一个地址之前的值,   ++*cp  先取cp所指向内存地址中的值,然后执行++,使得该内存地址中的值加1,这个结果中的值是cp所指向内存地址增值后的值,注意是值增加1,而不是内存指向下一个地址 ...
我们在使用findViewById(id)在读取XML文件中的控件时其中id必须是已经设置为当前Activity主界面的XML布局文件中某个id标签,否则findViewById会因为找不到View对象而返回null,当我们一定要引用其他XML文件时,首先要根据XML的布局文件的设置来构造View对象代码为   LinearLayout main=(LinearLayout)getLayoutInflater().inflate(R.layout.main,null); TextView tx=(TextView)main.fiindViewById(R.id.text);
开始结点是指链表中的第一个结点,它没有直接前驱 头指针是指指向开始结点的指针(没有头结点的情况下)。一个单链表可以由其头指针唯一确定,一般用其头指针来命名单链表 头结点是在链表的开始结点之前附加的一个结点。有了头结点之后头指针指向头结点,不论链表是否为空,头指针总是非空,而且头结点的设置使得对链表的第一个位置上的操作与在表中其它位置上的操作一致  
你所遇到的这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。    条件编译命令最常见的形式为:    #ifdef 标识符     程序段1     #else     程序段2     #endif         它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。    其中#else部分也可以没有,即:    #ifdef  ...
这里我上传一篇有关C语言指针方面的知识
    文件上传的原理: 表单元素的 enctype 属性指定的是表单数据的编码方式,该属性有 3 个值: 1)      application/x-www-form-urlencoded :这是默认编码方式,它只处理表单域里的 value 属性值,采用这种编码 ...
大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。 int checkSystem( ){union check{int i;char ch;} c;c.i = 1;return (c.ch ==1);}如果当前系统为大端模式这个函数返回0;如果为小端模式,函数返回1。
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身 决定。它是“储存指针的数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节, 至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。 下面到底哪个是数组指针,哪个是指针数组呢: A),int *p1[10]; B),int (*p2)[10]; 每次上课问这个问题,总有弄不清楚的。这里需要明白一个符号之间的优先级问题。 “[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int * 修饰的是数组的内容,即数组的每个元素。那现在我们清 ...
main() { int a[5]={1,2,3,4,5}; printf("%d,%d",*(a+1),*(&a+1)); } a,&a 的值是一样的,但意思不一样,a 是数组首元素的首地址,也就是a[0]的 首地址,&a 是数组的首地址,a+1 是数组下一元素的首地址,即a[1]的首地址,&a+1 是下一个数组的首地址,显然当前指针已经越过了数组的界限
在Android中读取电话信息时,要注意加入 <use-permission android:name="android.permission.READ_CONTACTS"/> 在android中使用BroadcastReceiver时 <use-permission android:name="android.permission.RECEIVE_SMS"/> 在android中使用有关的文件下载功能时,要使用到的 <use-permission android:name="android. ...
下列参数在不同的编译器可能会有所不同, 但是一般是可用的: __LINE__ 和 __FILE__ 变量表示正在处理的当前行和当前文件. __DATE__ 变量表示当前日期,格式为month/day/year (月/日/年). __TIME__ 变量描述当前的时间,格式为hour:minute:second (时:分:秒). _cplusplus 变量只在编译一个C++程序时定义. __STDC__ 变量在编译一个C程序时定义,编译C++时也有可能定义
const 修饰的不是常量而是只读 的变量,const 修饰的只读变量不能用来作为定义数组的维数,也不能放在case 关键字后面。 只读变量它是个变量,声明它时,需要给它分配内存空间或者说是缓冲。而常量不是变量,是一个静态的值,不需要为它分配内存空间 C语言中定义常量是用enum类型和#define宏  
使用Handler的大致流程:   1、首先创建一个Handler对象,可以直接使用Handler无参构造函数创建Handler对象,也可以继承Handler类,重写handleMessage方法来创建Handler对象。   2、在监听器中,调用Handler的post方法,将要执行的线程对象添加到线程队列当中。此时将会把该线程对象添加到handler对象的线程队列中。   3、将要执行的操作写在线程对象的run方法中,一般是一个Runnable对象,复写其中的run方法就可以了。   Handler包含了两个队列,其中一个是线程队列,另外一个是消息队列。使用post方法会将线程对象放 ...
Global site tag (gtag.js) - Google Analytics