c语言中20的倍数为真,0723-0802 C语言笔记(李明杰前8天)

-(IBAction) click{[UIApplication shareApplication].applicationIconBadgeNumber=10;

}

就可以显示图标上数字

#import

-(IBAction) 3d动画{

CATransition *ca=[CATransittion animation];

ca.type=@"cube"; //翻转动画

ca.type=@"rippleEffect"; //水波动画

ca.type=@"pageCurl";//翻页

ca.subtype=@"fromLeft";

ca.duration=1;

[self.view.layer addAnimation:ca forKey:nil];

}

main函数

int main(){

play();//调用语句

return 0;

}

printf(“第一个c语言函数”);

编译器 Xcode3 gcc

Xcode4 LLVM

指令 cc -c 文件名.c

链接:其实就是把我们的.O目标文件跟系统自带的函数库合并在一起,生成一个可执行的文件

指令 cc 文件名.o

双击打开 “终端”打开

指令 ./ a.out

cc 文件名.c直接会连续 编译 联接 把.o文件删掉

cc 文件名.o -o 连接文件名

cc -c 04\ 文件名.c 就是 04 文件名 否则就是两个文件

float height=1.78f

//如果用%d来输出会不预计的错误

//%f用来输出小数,默认是6位小数

printf(“身高是%f\n”,height);

//限制小数点后两位

printf(“身高是%.2f\n”,height);

int 类型还可以用%i %i=%d

char 类型可以用%c

常用格式符

1>%d %i整数(int)

2>%f 小数(floatdouble)

3>%c 字符(char)

//&是一个地址运算符,取得变量的地址

//%p用来输出地址

printf(“a的地址是:&p\n”,&a);

1.内存地址由大到小,优先分配地址比较大的字节给变量

2.变量越先定义,内存地址就越大

3.取得变量的地址:&变量名

4.输出地址:%p

没有初始化的值是乱七八糟的值,一定要初始化

scanf函数-prinf

阻塞式函数

scanf(“%d”,&num1);

scant函数必须是& 变量地址

一次性输入多个数值,并且以某些符号隔开

int num1,num2;

scanf(“%d#%d”,&num1,&num2);

prinf(“num1=%d,num2=%d\n”,num1,num2);

如果scanf参数中以空格隔开,实际输入可以空格,tab,回车

作为分隔符

scanf中不能写\n

a+=5+6+4; a=a+(5+6+4)

sizeOf函数

C语言没有boolean,0为假,非零为真

&&只要有一个不成立它的返回值就是0

||两个都不成立它的返回值就是0;

这个和java的不一样

int a=10

int b=10

int c=(a<5)&& (++b>=11);

a=10 b=10 c=0;

sizeof(boolean);

//三目运算符

int a=!100?9:89;

printf(“a=&d\n”,a);

int a=2;

if(a++>10)//a==3

{

printf(“A\n”);

}else if(a++>5){

printf(“B\n”);

}else if(a++>3){

printf(“C\n”);

}else{

printf(“D\n”);

}

printf(“a的值是%d\n”,a);//5

//如果要在if语句后面添加新变量,记得用括号括起来不要这样写(会报错,因为作用域不明确)

if(10>6)

int a=5;

printf(“%d\n”,a);

switch(c){

case ‘+’:

{

int sum=a+b;

printf(“和是%d\n”,sum);

break;

}

case ‘-’:{

int min=a-b;

printf(“差是%d\n”,minus);

break;

}

}

不能去掉花括号,不然sum的作用域不明确

如果要在case后面定义新的变量,必须用大括号{}包住

函数可以写成

test(){}只会有警告

如果没有写返回值 就是返回默认int类型

如果 int test(){}也可以这么写,因为C语言是弱语言

所以 main 函数可以直接写成 main(){}

C语言不允许两个函数名称一样

char test(){ return ‘A’;}

void test(int a,int b){

} 错!

函数不能嵌套定义 ,和java内函数区别

函数写在,main 函数,下面就要声明.

函数不能重复写,声明可以重复声明

如果有函数声明,没有函数的定义

1>编译可以通过,因为编译器只会检测语法合不合理,并不会函数有没有定义

2>链接报错,因为链接的时候会检测函数是否定义

include 1>拷贝文件的所有内容到include所在的位置

2>自定义的文件用””,系统自带的文件用<>

3>可以用相对路径和绝对路径

#include “haha/abc.txt”

#include “/User/XXX/XXX.txt”

txt后缀的也可

以导入

28ef65c68c9e1021dd51e14133257f7c.png

链接:把项目中所有相关联的.o目标文件,c语言函数库合并在一起,生成可执行的文件

cc XX.o main.o

\n是一个转义字符

\t tab键

\” 一个双引号

printf函数返回的字符串常量的字符数.并不是字数

1个汉字占据3个字符

int e=printf(“哈h\”\ta\n”);

系统根据主函数return 的值知道运行状况 return 0;正常运行

//二进制(0b或者0B开头)

int number=0B1100

//八进制(0开头)

int number=014;

//十六进制(0X或者0x开头)

int numer=0xc;

/用位与&运算符判断变量的奇偶性/

a&1==1;//奇数

a&1==0;//偶数

位运算 比较最后一位 是0还是1

/*

int 4个字节 %d

short 2个字节 %d

long 8个字节 %ld

long long 8个字节 %lld

signed

unsigned

*/

//long =long int

//long long int =long long

//short= short int

char name[]="it";

char name2[]={'o','k'};

printf("%s\n",name2);

41c5e9f20ed3a89f457006586bc79d0d.png

\0的ASCII码值是0

char name[8]=”it”;

char name[8]={‘i’,’t’,’\0’};

char name[8]={‘i’,’t’,0};

char name[8]={‘i’,’t’};

都是字符串

char name[8]={‘i’,’t’};不算是一个字符串(只能说是一个字符数组)

printf(name);把数组传入,仅仅是一个警告.

strlen函数:计算字符串的长度

1.计算的是字符数,并不是字数(中文字符占3个位)

2.计算的字符不包括\0;3

3.从某个地址开始数字符的个数,直到遇到\0为止.

strlen函数声明在string.h文件中

指针

int *p ;

int a=90;

//指针变量p指向变量a

p=&a;

*p=10;

printf(“%d\n”,a);//等于10;

指针变量p前面的int :指针变量p只能指向int类型的数据.

清空指针

p=0; 或者NULL,后面即使赋值就没有意义了

unsign long %zd

1.数组元素的访问方式

1>数组名[下标] ages[i]

2>指针变量名[下标] p[i]

3>*(p+i)

2.指针变量的+1,取决于指针的类型

int ^ 4

char *1

double *8

结构体

数组:只能由多个相同类型的数据构成

结构体:可以由多个不同类型的数据构成

1、定义结构体类型

struct Person{

int age;//年龄

double height;//身高

char *name;//姓名

};

2.根据结构体类型,定义结构体变量

struct Person p={20,1.55,”jack”};

p.age =30

结构体的成员是最大成员的倍数 补齐算法

指向函数的指针 void (*p)();

掌握:

1.看懂语法

2.定义指向函数的指针

double (p)(double,char,int);

p=haha;

或者

double (p)(double,char,int)

变量的作用域,可以分为 局部变量:默认初始值就是随机的

全局变量:默认初始值就是0

指针变量p将来指向Struts student类型的数据

struct Student stu={1,20};

指针变量p将来指向struct Student类型的数据

struct Student *p;

指针变量p指向了stu变量

p=&stu;

//第一种方式

printf(“age=%d,no=%d\n”,stu.age,stu.no);

//第二种方式

printf("age=%d,no=%d\n",(*p).age,(*p).no);

//第三种方式

printf(“age=%d,no=%d\n”,p->age,p->no);

所有的预处理指令都是以#开头。

宏-大写 或者常量用K开头

带参数的宏定义#define sum(v1,v2) v1+v2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值