C语言是一门计算机语言。 是与计算机交流的程序。
二进制 1/0 正电/负电
100001000011100001 -手册
101000001 -ADD-助记符-汇编语言 ---低级语言
B语言
C语言、C++ -----高级语言
C语言 不成熟-》成熟-》流行
国际标准 ANSIC--89年 C89标准 /C90标准 C99 C11 不流行---不少编译器不支持
写C代码 1、创建工程 2、visual C++->空项目->位置 3、创建文件 .c -源文件 .h -头文件 4、写代码
#include<stdio.h>
//int 整型的意思 //main前面的int表示main函数调用返回一个整型值
//包含一个叫stdio.h的文件 //std-标准standard input output #include<stdio.h>
int main(){ //主函数-程序的入口,有且仅有一个 //在屏幕上输出hello //printf()-----打印函数,库函数,C语言本身提供使用的函数 //别人的东西,需要打招呼使用 printf("hello\n"); return 0;//返回 0(整数) }
//过时的写法 void main(){
}
数据类型
int //整型 float //单精度浮点数 double //双精度浮点数 short //短整型 char //字符 long //长整型 long long // int main() { char ch='A';//计算机内存申请空间 printf("%c",ch);//%c ---打印字符格式的数据 printf("%d",ch);//%d -------整型格式 printf("%f",ch);//%f -------单精度浮点数 //%p //以地址的形式 //%x //打印16进制
float f=5.0;
printf("%f\n",f);
double d=3.14;
printf("%lf",d);
printf("%d\n",sizeof(char)); //计算字节数
}
计算机中的单位
bit ---比特位 存放一个二进制位,1/0 byte -字节 kb mb gb tb pb
int age=20; //byte=4 32bit,2^32 short //byte =2,16bit,2^16-1=65535
C语言标准规定 sizeof(long)>=sizeof(int) //long->4/8byte
int main(){ short age=20;//向内存申请2个字节=16bit,用来存放20 float weigh=95.6;//向内存申请4个字节=32bit,用来存放小数 }
常量变量
int age=20;//4个字节的空间
变量的作用域 作用域:代码所用的名字不总是有效/可用的,名字的可用性代码范围即为作用域
#define _CRT_SECURE_NO_WARNINGS 1 默认装在第一行
const int n = 10;//n是常变量,是个变量,但是具有常属性 int arr[n] = { 0 };
#define MAX 10 //定义标识符常量
enum Color{ RED, BLUE, YELLOW };
int main(){ enum Color color=BLUE; }
字符串 char str[] = { "abc" }; char str2[] = { 'a','b','c',0 }; printf("%s", str); printf("%s", str2);
\0 不是字符串,是结束的标志 \0的值是0 'a'=97 '\0'=0 //数据在计算机上存储的时候,存储二进制 //a=97 //A=65 //。。。 //ASCII编码 //ASCII码值
strlen() 计算字符串的长度 没有\0的长度
\0是个转义字符,在字符串中是结束标志 转义字符,转变原来的意思
int main() {
//移位操作符
//<<左移
//>>右移
//整型1占4个字节=32bit,
//0000 0000 0000 0000 0000 0001
//0000 0000 0000 0000 0000 0010
int a = 1;
int b=a << 1;
printf("%d",b);
return 0;
}
int main() {
//移位操作符
//<<左移
//>>右移
//整型1占4个字节=32bit,
//0000 0000 0000 0000 0000 0001
//0000 0000 0000 0000 0000 0010
int a = 0;
int b =a;//b是有符号的整型, ---按二进制位取反
//0000 0000 0000 0000 0000 0000
//1111 1111 1111 1111 1111 1111
//原码 反码 补码
//负数在内存中存储的时候,存储的是二进制的补码
//1111 1111 1111 1111 1111 1111
//1111 1111 1111 1111 1111 1110
//1000 0000 0000 0000 0000 0001
//-1
printf("%d\n",b); //使用的,打印的是这个数的原码
//原码符号位不变,其他取反,得到反码,反码+1得到补码
return 0;
}
输出:-1
register int a = 10;//建议把a放到寄存器中去
int a = 10;
a = -1;
//int 定义的变量是有符号的,signed int
//unsigned int 无符号数,永远都是正数
//typedef --类型定义,类型重定义
typedef unsigned int u_int;//unsigned int的别名是u_int,方便
u_int num = 20;
#include<stdio.h>
void test() {
//static修饰局部变量
//局部变量的生命周期变长
static int a = 1;//a变成静态的局部变量
a++;
printf("a=%d\n", a);
}
int main() {
static int i = 0;
while (i < 5) {
test();
i++;
}
return 0;
}
#include<stdio.h>
//extern -声明外部符号
//static修饰全局变量
//改变了变量的作用域 -让静态的全局变量只能在自己所在的源文件使用
//出了源文件不能使用
int main() {
extern int g_val;
printf("g_val=%d\n", g_val);
return 0;
}
#include<stdio.h>
//声明外部函数
extern int Add(int, int);
//static 修饰函数
//也是改变了函数的作用域-不准确
//static修饰函数改变了函数的链接属性
//外部链接属性-》内部链接属性
int main() {
int a = 10;
int b = 20;
int sum = Add(a, b);
printf("%d\n", sum);
return 0;
}
学习来源于B站-c语言编程学习 仅做个人记录。