1:编译指令 cc -c 文件名
批量编译 cc -c 文件名1 文件名2
2:链接:其实就是把我们的.o目标文件跟系统自带的函数库合并在一起,生成一个可执行文件
cc 文件名.o 生成.out执行文件
3:将.out文件用终端打开
C语言常见文件的扩展名
1:.c是c语言源文件,在编写代码的时候创建
2:.o是目标文件,在编译成功的时候产生
3:.out是可执行文件,在链接成功的时候产生
总结clang指令
1:编译:cc -c xxx.c 检查语法是否正确,并不会检查有没有main函数
2:链接:cc xxx.o 会检测有没有main函数
3:编译链接:cc xxx.c
4:运行可执行文件: ./a.out
变量的定义与输出
//
// second.c
//
//
// Created by 阿三哥 on 8/27.
//
//
#include <stdio.h>
#include "second.h"
int main()
{
int age=27;
// %d\%i 表示整数占位符
printf("my age is %d\n",age);
float height=1.75f;
//%f 是用来输出小数,默认是6位小数
printf("my height is %f\n",height);
printf("my height is %.2f\n",height);
// %c 表示char占位符
char c='w';
printf("my first name is %c\n",c);
printf("name is %c;age is %d;height is %.2f\n",c,age,height);
return 0;
}
变量的地址
//内存地址是由大到小
int a=10;
int b=20;
//&是地址运算符,取得变量的地址
//%p使用输出地址
printf("a的地址:%p\n",&a);
printf("b的地址:%p\n",&b);
scanf函数的使用
//
// scanf函数的使用.c
//
//
//
//
#include <stdio.h>
#include "scanf函数的使用.h"
int main()
{
//定义一个变量,用来保存用户的整数
int memeber;
//scanf 函数只接收变量的地址
//scanf函数是一个阻塞式函数,等待用户输入
//用户输入完毕后,就会将用户输入的值给member变量
//函数继续往下走
scanf("%d",&memeber);
printf("您输入的值:%d\n",memeber);
return 0;
}
sanf 输入两个整数 求和
//
// scanf函数的使用2.c
//
//
//
//
#include <stdio.h>
#include "scanf函数的使用2.h"
int main()
{
int num1,num2;
printf("请输入第一个整数:\n");
scanf("%d",&num1);
printf("请输入第二个整数:\n");
scanf("%d",&num2);
printf("%d+%d=%d\n",num1,num2,(num1+num2));
return 0;
}
sizeof函数
用来计算一个变量或者常量,一种数据类型所占的内存字节数.
int a=10;
int sizea=sizeof(a);//4
//或者
sizeof 10,sizeof a,sizeof(数据类型);
strlen函数 计算字符串的长度
#include <string.h>
#include "StringLength.h"
int main()
{
int len=strlen("jjjj");
printf("len:%d",len);//4
return 0;
}
指针
指针的作用:能给根据一个地址值,访问对应的存储空间
普通变量的声明方式:变量类型 变量名;
指针变量的声明方式:变量类型 *变量名
指针变量只能存储地址
#include "指针.h"
int main()
{
int a=10;
int *p;
p=&a;
printf("a==%d\n",a);//10
*p=100;
printf("a==%d\n",a);//100
return 0;
}
#include "指针.h"
int main()
{
int a=10;
int *p;
p=&a;
printf("a==%d\n",a);//10
*p=100;
printf("a==%d\n",a);//100
a=200;
printf("p==%d\n",*p);//200
return 0;
}