重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
char* 声明下面的变量是指针,指向char型量。
成都创新互联公司是一家集网站建设,温县企业网站建设,温县品牌网站建设,网站定制,温县网站建设报价,网络营销,网络优化,温县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
void* 声明下面的变量是指针,指向void 型。
int* 声明下面的变量是指针,指向int型量。
malloc的用法
#define ARRAY_SIZE 100
char *s;
int *a;
s = (char *) malloc( ARRAY_SIZE * sizeof(char));
if (!s) {printf("no enough memory for s\n");exit(0);};
a = (int *) malloc( ARRAY_SIZE * sizeof(int));
if (!a) {printf("no enough memory for a\n");exit(0);};
for (i=0;iARRAY_SIZE;i++) a[i] = i * 3;
printf("please input a line strings\n");
gets(s);
printf("the line is: %s \n",s);
类型 在变量名后边
也可不显式声明类型, 类型推断, 但是是静态语言, name一开始放字符串就不能再赋值数字
方法,属性 分开 方法名首字母大写就是就是外部可调的
面向对象设计的一个重要原则:“优先使用组合而不是继承”
Dog 也是Animal , 要复用Animal 的属性和方法,
只需要在结构体 type 里面写 Animal
入口也是main, 用用试试
多态, 有这个方法就是这个接口的实现, 具体的类 不需要知道自己实现了什么接口,
使用: 在一个函数调用之前加上关键字go 就启动了一个goroutine
创建一个goroutine,它会被加入到一个全局的运行队列当中,
调度器 会把他们分配给某个 逻辑处理器 的队列,
一个逻辑处理器 绑定到一个 操作系统线程 ,在上面运行goroutine,
如果goroutine需要读写文件, 阻塞 ,就脱离逻辑处理器 直接 goroutine - 系统线程 绑定
编译成同名.exe 来执行, 不通过虚拟机, 直接是机器码, 和C 一样, 所以非常快
但是也有自动垃圾回收,每个exe文件当中已经包含了一个类似于虚拟机的runtime,进行goroutine的调度
默认是静态链接的,那个exe会把运行时所需要的所有东西都加进去,这样就可以把exe复制到任何地方去运行了, 因此 生成的 .exe 文件非常大
定义,声明的时候,必须写
如
int * ip;
char * cp;
double *dp=NULL;
在使用的时候,*号并不是指针的标志,而是一种运算符号,意思是解应用。
int a=5;
int b=3;
int * ip=a;
那么,直接使用ip,ip是这个地址,是一个指针,比如ip=b,那么ip就指向了b。
而使用*ip,是对ip进行解引用计算,也就是取出ip指向的内容,*ip的值是5(a的值),*ip=b,是对ip指向的地址赋值,此时你输出a,得到的值是3
希望能帮到你,不懂再问我
***********************************************
一个指针,指向一个数据,也就是间接地使用了这个数据,我们可以称之为引用。
直接使用ip,就是间接使用(得到地址),通过地址解析出原始数据,可以称之为解引用,所以*ip就得到了ip指向的数据。
可能叫做 "地址解析"之类的你更容易明白吧
C语言在定义变量时加两个星号是表明这个变量为二级指针
C语言中在定义变量时使用 * 号是为了表明该变量为指针
指针有分一级指针,二级指针,三级指针等,有几个 * 号就相当于是几级指针