随笔分类 -  C/C++

摘要:今天有同学提问一个问题: int i = 1;//32bit i=i<<32; 之后i=?; 按照之前的理解:32位的整型数据1的二进制为:0000 0000 0000 0000 0000 0000 0000 0001, 往左移一位将变成:0000 0000 0000 0000 0000 0000 阅读全文
posted @ 2016-03-01 10:58 玩呀熊熊 阅读(620) 评论(0) 推荐(0)
摘要:今天听课时老师讲到求数组所占内存大小时,应该这样写,eg:int a[10];那么sizeof(a)就是数组所占空间的大小。个人的理解是这样的:我们定义了数组a,那么数组名a就应该是一个指针常量,指向的是数组a的首地址,也就是说a是一个地址。那么sizeof(a)在32位机下,得到的结果应该是4,但... 阅读全文
posted @ 2015-11-26 16:33 玩呀熊熊 阅读(178) 评论(0) 推荐(0)
摘要:这个问题在昨天的随笔之中还提到过了,再次摘录一下:采用指针存储字符串,其实质就是把字符串的首地值附给基类型为char的指针变量,从而可以从字符串首元素开始对字符串进行操作,这里面也存在一点问题. 用这个类子给大家解释解释. int main() { char *p="h... 阅读全文
posted @ 2015-09-22 10:50 玩呀熊熊 阅读(1499) 评论(2) 推荐(1)
摘要:上周五参加Realtek的笔试题,有一道选择题,大概是这样的:const char a1[] = "abc";const char a2[] = "abc";const char *p1 = "abc";const char *p2 = "abc";A、a1和a2一样,p1和p2不一样;B、a1和a... 阅读全文
posted @ 2015-09-21 11:06 玩呀熊熊 阅读(252) 评论(0) 推荐(0)
摘要:以下来自网络:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #xx##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf... 阅读全文
posted @ 2015-09-21 09:47 玩呀熊熊 阅读(449) 评论(0) 推荐(0)
摘要:昨天用结构体指针写了一个双链表的程序,编译环境是VC6.0,之前写单链表的时候也是用的这个编译器,但是昨天出了一个让我很费解的问题,代码如下:/*********************************************************** C... 阅读全文
posted @ 2015-09-10 09:15 玩呀熊熊 阅读(378) 评论(0) 推荐(0)
摘要:/*********************************************************** 链表的基本操作(C语言)**文件:list.c*作者:Mr Wan*描述:实现链表的初始化、添加、删除等等*编写时间:2015.9.7**修改日期:2015.9... 阅读全文
posted @ 2015-09-09 15:27 玩呀熊熊 阅读(207) 评论(0) 推荐(0)
摘要:关于“void *”经常在代码中会看到类似这样的定义:void Task1 (void *pdata){while(1){……}}这是一个uCOSII的任务代码,我们可以看到该任务函数有入口参数”void *pdata”,从字面上看,我们在这里声明了一个void *的指针变量pdata,它所指向的内... 阅读全文
posted @ 2015-09-08 15:28 玩呀熊熊 阅读(214) 评论(0) 推荐(0)
摘要:1、字符数组:char str[]=”Hello~World!”;2、字符指针:char *str=”Hello~World!”;1中定义了一个数组,数组里面存放的是字符串“Hello~World!”;2中定义了一个char *的指针,将“Hello~World!”赋给该指针。那么问题来了,既然2中... 阅读全文
posted @ 2015-09-08 15:27 玩呀熊熊 阅读(220) 评论(0) 推荐(0)
摘要:关于static关键字作用的理解1、 修饰变量,变量分为全局变量和局部变量,但他们都存在于内存的静态区a、 静态全局变量,静态全局变量的作用域是变量被定义的文件中,其他文件即使使用extern也无法使用它,准确地说它的作用域是从定义之处开始到文件结尾处结束,在定义之前的代码也没法使用它,要想使用它只... 阅读全文
posted @ 2015-09-08 15:26 玩呀熊熊 阅读(180) 评论(0) 推荐(0)
摘要:1、bool型变量如何与零值进行比较?bool bTestFlag = FALSE;(想想为什么bool型变量初始化为FALSE)a、 if(bTestFlag==0) /if(bTestFlag==1)b、 if(bTestFlag==TRUE)/if(bTestFlag==FALSE)c、 if... 阅读全文
posted @ 2015-09-08 15:25 玩呀熊熊 阅读(226) 评论(0) 推荐(0)
摘要:数组可以作为函数的输入参数,这个很简单,例如:void fun(int a[],int i);上述函数原型中第一个输入参数就是一个int a[],是一个整型的数组。那么一个函数能不能返回一个数组,怎么返回一个数组呢?比如,我们在一个函数InsertData里面要向一个输入的空数组a[]中插入变量,然... 阅读全文
posted @ 2015-09-08 15:23 玩呀熊熊 阅读(241) 评论(0) 推荐(0)
摘要:今天看数据结构教材时偶然发现一个奇怪的函数,如下:Status ListTraverse(LinkList L,Status (*visit)());该函数中Status和LinkList是用户自定义的数据类型,我们从该函数的原型中可以发现,该函数的第二个入口参数是一个函数,于是我们提出以下问题:Q... 阅读全文
posted @ 2015-09-08 15:21 玩呀熊熊 阅读(282) 评论(0) 推荐(0)
摘要:函数作为C语言程序中一个重要的部分,在内存中也是有其地址的,也就是说函数也有自己的指针。函数指针的一般定义格式为:类型名 (*变量名)(参数类型表);其中类型名就是指函数返回值的类型,变量名就是该函数指针的名称,例如:int (*padd)(int,int);定义了一个函数指针padd,它可以指向有... 阅读全文
posted @ 2015-09-08 15:19 玩呀熊熊 阅读(191) 评论(0) 推荐(0)
摘要:1 #include 2 3 int num[]={1,3,5,45,67,18,64,82,34,62}; 4 5 int *pnum; 6 7 int *Fun(int *num);//该函数可以实现输入一个数组且输出一个数组的功能 8 9 void main()10 {11 ... 阅读全文
posted @ 2015-08-06 20:42 玩呀熊熊 阅读(1618) 评论(0) 推荐(0)
摘要:1 #include 2 3 char str[]="Hello~world!"; 4 5 char *ptr=str;//数组名只代表数组元素的首地址,即str[0]的地址, 6 //故此处也可以这样写: char *ptr=str[0]; 7 8 void main() 9 {10 1... 阅读全文
posted @ 2015-08-06 20:05 玩呀熊熊 阅读(180) 评论(0) 推荐(0)
摘要:1、要区分指针的类型和指针所指向的类型1.1指针的类型:把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。eg: int *a;去掉‘a’,得到“int *”,所以该指针的类型就是int *,即该指针是一个指向整型变量的指针; char *str;去掉“str”,得到"char *... 阅读全文
posted @ 2015-08-06 11:06 玩呀熊熊 阅读(248) 评论(0) 推荐(0)