编程软件

DEV C++

Mac 安装 XCode 或者 gcc

程序框架

1
2
3
4
5
#include "stdio.h"
int main(){
//...语句
return 0;
}

编译执行

cmd 命令
cd path
ls -l
gcc fileName.c
ls -l
./a.out

输入,输出

scanf,printf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h"
int main(){
//打印字符串
printf("Hello World!\n");
//计算
printf("12+34=%d",12+34);

int price= 0
printf("请输入金额(元):");
scanf("%d",&price);
int change = 100-price;
printf("找您%d元。\n",change);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h"
int main(){
printf("请输入身高的英尺和英寸,例如:5 7 表示5尺7寸。");
int x,y;
scanf("%d %d",&x, &y);
//改进方式②
double x,y;
scanf("%lf %lf",&x, &y);

printf("身高是%f米\n", (x+y/12)*0.3048);
//整数计算结果只能是整数
//改进方式①
printf("身高是%f米\n", (x+y/12.0)*0.3048);
return 0;
}

表达式

a = b + 5;

  • =,+ 运算符
  • a,b,5 算子

sizeof

返回内存中所占字节

&

获得变量的地址

1
2
3
4
5
6
7
8
9
#include "stdio.h"
int main(){
int i=0
printf("%p\n", &i);

printf("%lu\n", sizeof(&i));
printf("%lu\n", sizeof(int));
return 0;
}

内存变量分配,自定向下。先定义的在高位,后定义的在低位。

指针

保存地址的变量

1
2
3
int i = 100;
int* p = &i;
int *p,*q != int *p,q

访问指针地址上的值

1
2
3
4
5
6
7
8
9
int i = 100;
int *p = &i;
int x = *p

printf("x=%d\n", x);
//输出结果为100
*p = 26;
printf("i=%d\n", i);
//输出结果为26

函数参数列表中的数组参数实际上是指针,但是可以用【】操作数据。

数组变量是常量指针,不能被赋值

1
int b[] --> int *const b

字符类型 char

char是一种整数,也是字符。

%c 'a'    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
char c,d;
c=1;
d='1';

if(c==d){
printf("相等\n");
}else{
printf("不相等\n");
}
printf("c=%d\n",c);
printf("d=%d\n",d);

//输出结果
//不相等
//c=1;
//d=49;

scanf("%c",&c);
printf("c=%d\n",c);
printf("c='%c'\n",c);
//输出结果
//c=1;
//c='1';

逃逸字符

\“ | \b | \t | \' | \n | \r | \\

字符串

以0结尾的一串字符

1
2
3
4
char word[] = {'H','e','l','l','o','!','\0'};
char *str = "Hello";
char word[] = "Hello";
char line[10] = "Hello";
  • 0 == ‘\0’ != ‘0’
  • ‘\0’标识字符串结束,不属于字符串的一部分,计算长度不包括’\0’
  • 字符串以数组的形式存在,以数组和指针的形式访问

“Hello” 字符串常量
不能用运算符对字符串做运算

1
2
3
4
5
chart string[8]
scanf("%s", string);
printf("%s##%s##\n", string, string);

scanf("%7s", string); //输入内容最多读取7位

字符串函数

string.h

strlen | strcmp | strcpy | strcat | strchr | strstr
strcpy,strcat 不安全,安全版本:strncpy,strncat
strncmp:比较前几位