
编程语言
文章平均质量分 57
wityy
这个作者很懒,什么都没留下…
展开
-
12个有趣的C语言面试题
1.gets()函数问:请找出下面代码里的问题:#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; }转载 2012-09-11 22:04:56 · 794 阅读 · 0 评论 -
指针与数组--指针访问与下标访问
指针与数组下标访问与指针访问的区别如下: char *p="abcde";char a[5]={1,2,3,4,5};printf(" p+4 = 0x%p,*(p+4) = 0x%x\n",p+4,*(p+4));printf("&p[4] = 0x%p, p[4] = 0x%x\n",&p[4],p[4]);printf(" a+4 = 0x%p,*(原创 2013-05-10 12:04:20 · 2803 阅读 · 0 评论 -
指针与数组--指针与数组的定义与声明
定义与声明的区别:(1)定义就是编译器创建一个对象,为这个对象分配一块内存并为其取一个名字,这个名字就是我们常说的变量名或对象名。定义需要分配内存。(2)声明表示该变量名或对象名在其他地方已经定义过,并且该变量名或对象名已经定义过,其他地方不能在使用该名字作为变量名或对象名。同一个变量名或对象名可以在不同的地方声明多次,并且声明不分配内存。指针与数组的定义域声明如下两种方式都是原创 2013-05-10 14:02:11 · 1148 阅读 · 0 评论 -
#define
define 用于文本替换,称之为宏定义,基本形式为不带参数和带参数两中形式:(1)#define name struff eg:#define NUM 100 (2)#define name(parameter-list) struff eg:#define SUM(a,b) ((a)+(b))原创 2013-03-10 17:21:55 · 1084 阅读 · 0 评论 -
串口发送数据——字符串发送与十六进制发送的区别
在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。 在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。例原创 2012-11-28 16:01:15 · 60519 阅读 · 10 评论 -
利用异或方法实现数据交换
两个数据实现数据交换通常选用中间变量的方式实现,利用异或运算可以方便实现两个数据的互换。 异或运算:a^b (按位进行异或,相异为1,相同为0) 例如:a=5,即0101(2);b=6,即0110(2)。通过以下三个赋值语句可以实现数据交换。(1)a = a^b;(2)b = b^a;(3)a = a^b;过程分析:(1) a原创 2012-11-28 16:41:35 · 2541 阅读 · 0 评论 -
内存对齐
#pragma pack(push ,num) num表示几字节对齐Typedef struct AAA{Int a;Char b;…….}AAA;#pragma pack(pop)原创 2012-09-29 16:40:12 · 653 阅读 · 0 评论 -
结构体变量与结构体指针变量的使用方法
一、结构体的定义格式一般如下:Typedef struct SCI{ U8 data[MAXLEN]; U16 pos;}TSCI;二、访问结构体成员的基本方法有两种:1、定义一个结构体变量直接访问成员变量;2、定义一个结构体指针变量间接访问结构体变量。(1) 结构体变量访问TSCI Sci1;Sci1.data [原创 2012-09-29 16:34:30 · 2020 阅读 · 0 评论 -
串口接收缓冲区的一点体会
在调试电台的使用过程中,设计到电台参数检测、电台参数修改、电台传输模式启动和数据传输是个部分,程序流程是:(1)依次检测电台参数(CFG = 0),若电台参数正确则继续检测参数,否则修改参数设置。所有参数都正确时返回 TRUE。(2)参数正确后进入数据传输启动模式(CFG =1),接收到READY后表示启动完成,返回TRUE。(3)数据传输模式正常启动后,发送或接收数据。在原创 2012-09-29 16:14:07 · 11896 阅读 · 0 评论 -
指针与数组--a与&a区别
假设声明了一个数组a,则&a表示数组a的首地址,a与&a[0]表示数组a首元素的首地址,那么&a+1与a+1有哪些区别呢?通过下面的实验来说明。int i = 0;int a[5]={1,2,3,4,5};int *p = (int *)(&a+1);for(i=0;i{printf("a+%d = 0x%p,a[%d] = %d\n",i,a+i,i,a[i]);}原创 2013-05-10 12:48:42 · 1372 阅读 · 0 评论