fly12358

fly12358的笔记

来自千锋3G学院-C语言基础视频教程-第08讲-字符串(4)(0)

#include <string.h>strtok:(字符串分割函数)传入一个空间,传入一个字符串;只能分割可变的字符串;第一个 是要分割的字符串{前提是这个字符串一定是可变的,可更改的字符串;空间是可变的};第二个参数是分隔符;char *p=" hell wo de";//无法分割;char p[64]="i am so bad man";char *ret =strtok(p," ");//分隔符为空格;printf("%s",ret);//打印出 i//如果想继续分割后边的字符串 如 am//则再次调用strtok;//只不过传参要传空ret = strtok(NULL," ");//传空 表示 继续分割之前的字符串//传的不是空,表示分割新的字符串//原理是将分隔符换成'\0';如果被分割的不为可变,那么分隔符,将不能替换成尾零,程序会报错;完全分割;分割字符串中所有的字符;#include <stdio.h>#include <string.h>int main(){char but[] ="hello,welcome to qianfeng!";char *p=buf;while(1){p= strtok(p,", ");if(!p)break;printf("%s",p);p=NULL;}return 0;}//这样,它会以每一个逗号或者空格作为分隔符;//分割出来的字符串,不仅仅是可以打印出来,它也可保存到其他字符串数组中,可以再声明一个字符串数组: char * jie[5]={};int i;jie++ = p;  

来自 千锋3G学院-C语言基础视频教程-第09讲-位运算(1)(0)

位运算:针对一个变量的某一位的操作,称之为位操作;int a;4字节;32位;如:int a =5;0000 0000 0000 0000 0000 0000 0000 0101最低位是第0为;最高位是第31位;如果想把 第3为的0改成1,那么这就是位运算;为运算符:& 按位与  |按位或 ^按位异或 ~按位取反 <<左移  >>右移与运算:每一位进行与,一假即假5&3;0000 0000 0000 0000 0000 0000 0000 0101     5;     0000 0000 0000 0000 0000 0000 0000 0011     3;结果为:0000 0000 0000 0000 0000 0000 0000 0001     1;5&3 == 1;与的时候,用的是补码;-1的补码是全1;5&-1=5;或运算:每一位进行或运算;一真即真;5|3 == 7;异或运算:a^b;相同为假,不同为真;相同为0,不同为1;5^3 ==6; 按位取反:0为1,1为0;一个数的取反等于他的相反数减一;左移动 :每一位都向左移动一位,超出的舍去,末位补零;左移一位相当于乘以2;左移动2位,相当于乘以4;左移动n位相当于乘以2的n次方;右移:不同的系统右移动的结果不同;移除的部分舍去,正数首位补0;负数补1;mac5>>1 == 2正数右移动一位相当于除以2;右移动n位,相当于除以2的n次方;-1右移几位都是-1; 

来自千锋3G学院-OC语言-2.1-面向对象概念(0)

面向对象的思考:(面向过程:注重业务功能;) 面向对象:是一种思想;注重功能的封装和层次;冰箱放大象问题引入;面向对象:从一个执行者,转换成一个指挥者不关心功能是怎么写的,只关心调用接口! 

来自千锋3G学院-OC语言-2.2-基本语法概述(0)

语法oc:是c语言的面向对象的一个超集;oc最初只是为了给C设计一款最小化的面向对象语法;同时也完全兼容C语言;为了避免和已有的C、C++关键字冲突。所有oc关键字都是以@开始的;类的声明:类的声明都声明在@interface 和@end 之间;@interface Dog:NSObject{这里写字段;属性 如:int age;}外边写方法(函数)的声明;如:-(void) setAge:(int)newAge;@end   这个整体放到Dog.h中;类的实现:首先把类的声明包含进来,#import “Dog.h”, @implementation Dog写类的实现;如-(int)getAge{return age;}@end   整体在.m文件中; 创建对象:Dog *dog = [Dog alloc ]然后初始化构造函数;[dog init]销毁对象;[dog release] 

来自千锋3G学院-C语言基础视频教程-第09讲-位运算(2)(0)

【查看a的某一位】如果想求a的第n位(0位起)是1还是0?那么a&(1<<n)==1,则说明第n位是1,如果a&(1<<n)==0,这说明第n位是0;【将a的某位置成1】a = a|(1<<n);或者a|=1<<n;【将a的某位置成0】a& = ~(1<<n);【将a的某位取反】a^=1<<n; 

来自千锋3G学院-C语言基础视频教程-第10讲-结构体和枚举(1)(0)

结构体:不同类型变量的集合;(数组:相同类型变量的结合)struct user{char username[20];char password[20];long long userID;//结构体成员;};struct user user1;//相当于int a;结构体指针:指向结构体变量的指针;结构体可以存储向学生信息这样复杂的内容;   

来自千锋3G学院-C语言基础视频教程-第10讲-结构体和枚举(2)(0)

枚举:enum;用枚举中的成员代表0,1,2。。。。。可以给枚举赋一个初始值;赋值的这个成员后边的成员都会加1;前边那个成员值不会改变; 

来自 千锋3G学院-C语言基础视频教程-第11讲-动态内存分配(0)

malloc():帮助我们开辟内存空间;传进要开多少字节的空间;开的空间会存在堆段;(main函数在栈空间;)其返回值为void,表示泛型指针;泛型指针可以返回给任何类型的指针变量;size_t:usigd long;无符号长整型;堆空间使用完毕,需要释放;用free()函数;如果不释放,程序没有结束的话,堆空间里的函数始终不会消失;必须要释放;free();释放函数;exit()函数是终止程序进程;perror("报错")//报错栈空间:静态内存分配;//编译时决定的;堆空间:动态内存分配;//运行时决定的;动态内存:大小 运行时决定;程序员分配的;堆段;手动释放;静态内存:大小 编译时决定;编译器分配的;栈段;只读数据段;自动释放

来自千锋3G学院-C语言基础视频教程-第12讲-预处理(1)(0)

程序执行四个步骤:预处理;编译;汇编;链接;宏:(如:#define N 6)发生在预处理阶段的单纯的字符串的替换;解决反复使用到的常量;用宏定义 方便修改;在宏中没有变量常量、语法,只是单纯的替换;宏的传参,是单纯的替换;一定要把后边定义的变量都加上括号();  

来自千锋3G学院-C语言基础视频教程-第02讲-变量、运算符和表达式(2)(0)

short 短整型;short a=5 表示在内存中开辟2字节空间存放a=5这个数;0000 0000 0000 0101long长整型;在64位的CPU下:int 4字节;unsingnd:4字节;short 2字节;unsigned short 2字节;long8字节;unsigned long 8字节;打印:long %ld,short %d,int %d;不看怎么存,只看怎么读;想要打印8进制数:用%o来打印;想要打印十六进制数:用%x来打印;%d是10进制;无符号(unsigned)整型用%u来表示;无符号:unsignd 表示没有负数,只有正数;(在2进制数里最高位不表示正负了,如果是1,不表示负数,4字节空间下将会是一个很大的数:2的32次方;)字符常量:char;“A”:%d打印为65;(查看Ascll码表)char并不是字符变量,仍是整型;占1个字节;也有unsigned char! 在c中,如果sizeof(“A”)会显示4字节;在c中字符是以int存在的; ascll码表,最大数是127;一个字符默认是int存在;截断:当字符->char中的时候,高位存不下就会截断;短整型->长整型的时候,就会发生位扩展!实型(小数):float和double;float:保证6-7位是准确的;4字节double:15-16位是准确的;8字节;long double:17-18位是准确的,16字节 

来自千锋3G学院-C语言基础视频教程-第12讲-预处理(2)(0)

typedef :给变量类型起别名;(如 typedef int i_t;[i_t就是int的一个别名])一般,自创的类型用_t结尾;怎样声明一个变量,就怎样声明一个别名;size_t:表示大小的正数;typedef:有作用域;#define :宏没有作用域;

来自 千锋3G学院-C语言基础视频教程-第13讲-文件操作(1)(0)

读:文件--->内存写:内存--->文件打开文件:fopen();FILE * fp = fopen("./file","r");//“r”:只读,if(!fp){perror("fopen");exit(-1);}fclose(fp);//打开了,就要几个关闭;//void *p;/p是任意指针变量;fread:

来自千锋3G学院-C语言基础视频教程-第13讲-文件操作(2)(0)

FILE * fp=fopen("./file","w")//如果不存在这个文件,会新建一个文件,如果有file这个文件,会清空里边的内容;清空之后,我们就可以重写;fwrite(文件空间地址[hello,world],单位信息的字节数[1],一共写入多少字节,写到哪个文件[fp]);写入文件的函数;再次运行fwrite();会接着写入进去,并不会覆盖掉;fclose(fp);FILE * fp=fopen("./file","a")//a表示apaad,表示写入的时候不会清空里边数据;

来自千锋3G学院-C语言基础视频教程-第13讲-文件操作(3)(0)

#include <stdlib.h>"r+"就是在r的基础上加上写的权限;“w+”就是在写的基础上加上读的权限;"a+"就是在写的基础上加上读的权限;

来自iOS开发视频教程Objective-C【第一季】1.6 类的定义与对象的创建(0)

都要用驼峰标识;类名:首字母一般都是大写;定义类的步骤:1,定义类名;2,编写类的属性--->(实例变量) ;3,编写类的行为--->方法;一般类名最好与文件名一样,方便程序员们的理解;一般类下的属性声明 用下划线开头,原因是这里声明的是全局变量,方便与局部变量中的关键词重名;这里只能声明变量,不能赋值;方法的定义:-(void)method : (int) arguments;-(方法类型:实例方法,也叫对象方法)+(类方法)(void)返回值;没有返回值是void;method 方法名;(int《类型》):参数类型括起来;arguments:参数名;-----------------------------方法定义分为:不带参数:如-(void)shoping;带一个参数:void(shoping):(float)price;带两个参数:void(shopping):(float)price :(float)weight;-----------------------------在.m中@implementation//在这里写方法的实现;-(void)shopping:(float)price{NSLog(@"我正在购物!");}@end;然后在main函数中应用#import "Person.h"int main(){//通过类名创建对象;//Person *person = [Person alloc];//person = [person init];//alloc 是在内存中申请一块空间区域,来存放此对象的信息;//下边调用init方法初始化一些默认数据;Person *person = [[Person alloc] init];//将两个步骤嵌套在一起;//右边是创建对象;左边是声明变量; }

来自千锋3G学院-C语言基础视频教程-第02讲-变量、运算符和表达式(3)(0)

表达式:表达式(对变量)做了什么?表达式的值是什么?int a=3;char b=9;printf("%lu",sizeof(a+b));得4;自动类型转换:短字节向长字节看齐;有符号向无符号看齐;整型向浮点看齐;单精度向双精度看齐;整数默认是int类型;  

来自iOS开发视频教程Objective-C【第一季】1.7 设置器方法的定义(0)

上节:定义类;用类创建对象;-——————————————还有一种创建对象方法:Person * person2 =[Person new];(OC中不建议使用这种方式)一般使用这种方式:Person *person1=[[Person alloc] init];__________________________调对象里的方法;-开头的为:实例方法;+:类方法;-开头的必须有对象;(person1)main中执行到此;[person1 shopping:200];//200为参数就会进入到函数中;//这就是调用了这个shopping这个实例方法;实例方法必须有对象才能调用;//通过类能创建很多方法出来;------------------------------------创建完对象person1;设置名字和年龄;没有办法直接设置名字和方法,只能通过方法来设置;设置名字方法:-(void)setName:(NSString *)name;//方法描述:设置属性 name;实现:在.m文件中:-(void)setName:(NSString *)name{        _name = name;}-----------------------------------再回到main中设置名字:[person1 setName:@"张三"];//把张三字符串传入到name函数中,name再把张三传给_name;-----------------------------------属性:又叫成员变量,又叫全局变量,又叫实例变量;全局变量所有的方法中都能用;———————————————— 专门设置属性的方法:叫做设置器方法或者叫set方法;在外部获取属性的方法为获取器方法(get方法);有返回值;------------------------------ 比如-(NSString *)name; -(NSInteger)age;实现: -(NSString *)name{return _name;}-(NSInteger)age{return _age;}调用:NSString *name1 = [person1 name]  

来自iOS开发视频教程Objective-C【第一季】1.8 类方法的定义(0)

之前都是一个参数的方法;今天学多个参数的方法;———————————————————-(void)setName:(NSString *)name setAge:(NSInteger *)age;//《方法名有两个部分:setName和setAge》;setAge在这里可以省掉(但是不推荐用);实现:-(void)setName:(NSString *)name setAge:(NSInteger *)age{_name = name;_age = age;}//一般不会这样定义,这里只是用于演示;一般都是一个变量定义一个设置方法;调用:[person1 setName:@"张三" setAge:22];【对象调用方法!】————————————————【在.m和.h间切换】command+cotrl+上下键;tab键能补全我们为写完的关键字或标识符;————————————————方法类型:-对象方法, +类方法;+:类方法用类名去调方法;称之为类方法;方法描述:是用于创建一个Person对象的;定义类方法:+(Person *)newPerson;实现类方法:+(Person *)newPerson{Person *p = [[Person alloc] init];//这里可以初始化一些变量//[p setName:@"zhangsan" setAge:22]}调用类:Person *person3 = [Person newPerson];--------------------------------如果没有创建对象,就不能使用属性;实例对象都没有,哪儿来的属性?要想使用,必须要有对象;//在类方法中无法访问属性;属性:谁调的方法 属性就属于谁;

来自iOS开发视频教程Objective-C【第一季】1.9 课堂练习一(0)

补充对象的创建;创建一个对象的时候,里面的成员变量并没有初始化,那它们默认是什么呢?@interface Person :NSObjectint _Age;//系统默认为其初始化为:Byte:0;short:0;int:0;long 0L;char:\u0000' ;float:0.0F;double:0.0D;Bollean:FALSE;所有指针:nil;@end

来自千锋3G学院-C语言基础视频教程-第03讲-流程控制语句(1)(0)

在if中,如果if大括号里只有一个语句,那么这个大括号就可以省略;