上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: #include "stdio.h"void main(){ // int a[3][3]; int b[3]; b[3]=3; printf("%d",b[3]);}#include "stdio.h"void main(){ // int a[3][3]; int b[3]; b[3]=3; int *p=b; p++; p++; p++; printf("%d",*p);}以上两段代码都会出现,如下图所示错误:以上这段程序,数组b实际上只有b[0],b[1],b[2]三个值,而程序中却给b[3]赋值了... 阅读全文
posted @ 2014-03-02 11:17 yexuannan 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 一、两种链接库 1、静态链接库: 这种库包含函数代码本身,即声明和实现的代码都有。在编译时直接将代码加入程序当中。这个lib文件是静态编译出来的,只有.lib文件(相当于是n个.obj文件的集合,obj文件由一个个cpp文件编译得到),如下图所示,索引和实现都在其中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版... 阅读全文
posted @ 2014-02-28 15:27 yexuannan 阅读(1133) 评论(1) 推荐(0) 编辑
摘要: 方法一:char *str = “abcd“区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y',将会出错;。 方法二:char a[4]={a,b,c,d}; char*str = a; 也是一种初始化直接赋值,但是赋给str的是一个变量,所以str就是一个指向栈的指针了。 定义字符数组char str[]="abcd"只能有这么一种初始化方法,此时的abcd其实是存放在数组str中的,所以存储在栈中,与char* str="abcd&quo 阅读全文
posted @ 2014-02-14 09:57 yexuannan 阅读(1015) 评论(1) 推荐(1) 编辑
摘要: 不能交换的例子//传入的是拷贝,不能交换的例子#includevoid swap(char s1,char s2){ char t; t=s1; s2=t; s1=s2;}void main(){ char s[]="abcdef"; swap(s[0],s[1]);//传入的是拷贝 printf("%s",s);}可以交换的例子//传入的是地址,可以交换的例子#include#includeusing namespace std;void swap(string &str){ char t; t=str[0]; str[0]... 阅读全文
posted @ 2014-01-22 10:46 yexuannan 阅读(149) 评论(0) 推荐(0) 编辑
摘要: //强制类型转换的作用#includeint main(){ char a[20]="12345678"; //一个char字符占8位,即一个字节 //int *ptr=(int *)a; int *ptr=(int *)a; //int变量占32位,即4个字节 printf("%s\n",ptr); ptr++; //相当于加了四个字节 printf("%s",ptr);} 表格表示char数组的存储结构,以1个字节为单元,共有8个单元;ptr++直接跨越了4个单元;强制类型转换的作用就在这里 阅读全文
posted @ 2014-01-10 21:44 yexuannan 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 1、先看一反例://目的:通过函数myMalloc改变指针p的值#include#includevoid myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p); } 以上例子中,p实际还是NULL,p的值没有改变,为什么?答:我们的目的就是要改变指针p的值,因为p本身就是指针,传如myMalloc函数的实际上就是P... 阅读全文
posted @ 2014-01-10 21:16 yexuannan 阅读(1701) 评论(0) 推荐(0) 编辑
摘要: 首先看下此运行时函数的原型:cudaError_t cudaMalloc (void **devPtr, size_t size ); 主要的第一个参数。为什么是两个星星呢?用个例子来说明下。float *device_data=NULL;size_t size = 1024*sizeof(float);cudaMalloc((void**)&device_data, size);例子中:我在显存中申请了一个包含1024个元素的float数组。而device_data这个指针是存储在主存上的。之所以取device_data的地址,是为了将cudaMalloc在显存上获得的数组首地址赋值 阅读全文
posted @ 2014-01-10 20:28 yexuannan 阅读(2308) 评论(0) 推荐(0) 编辑
摘要: 看scanf输入的是多个字符还是一个字符。如果是多个字符,遇空格和回车都不会结束输入;如果是一个字符,遇空格不会结束,遇回车结束输入。如:①#include void main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d%d%d\n",a,b,c); } 键盘输入:1 2 3 运行结果:123 键盘输入:1 2 3 运行结果:123 (要求输入的是多个字符,遇空格、回车都不会结束输入。) ②#include void main() { int a; scanf(" 阅读全文
posted @ 2013-08-30 10:44 yexuannan 阅读(395) 评论(0) 推荐(0) 编辑
摘要: #includevoid main(){ int c; c=getchar(); //scanf("%c",&c); if(c!='a') printf("%d",c); }区别:getchar()读取回车scanf不读取回车 阅读全文
posted @ 2013-08-30 10:38 yexuannan 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 栈只能在一端(栈顶)进行插入和删除操作,换言之栈只需要一个栈顶指针即可;规则是先进后出;队列只能在一端(队尾)进行插入,在另一端(队头)进行删除,换言之队列需要队头指针和队尾指针两个,规则是先进先出;自己的理解:队列和栈实际上就是线性表的阉割版;酷狗音乐播放列表就是个队列,添加音乐到播放列表就是个入队操作; 阅读全文
posted @ 2013-08-30 09:13 yexuannan 阅读(1336) 评论(0) 推荐(2) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页