01 2014 档案
摘要:不能交换的例子//传入的是拷贝,不能交换的例子#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]...
阅读全文
摘要:全局变量和STATIC变量的初始化是在 main函数之前进行的,不是在编译时进行。程序实际的开始点是在 C 库的函数里,并不是 main 函数,C 库的函数 进行全局变量和静态变量的初始化,以及其他初始化操作然后跳转到main函数开始,main函数结束的时候又会回到C库的函数里,进行必要的清理工作。#includeint fun(){ static int count=10;//初始化只执行一次,且在main函数之前,这里的count出不了fun函数 return count--; }int count;void main(){ for(;count<=10;count...
阅读全文
摘要://强制类型转换的作用#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个单元;强制类型转换的作用就在这里
阅读全文
摘要: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...
阅读全文
摘要:首先看下此运行时函数的原型: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

浙公网安备 33010602011771号