重拾C语言

101 阅读5分钟

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));  //计算字节数

image.png

}

计算机中的单位

bit ---比特位 存放一个二进制位,1/0 byte -字节 kb mb gb tb pb

image.png

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,用来存放小数 }

常量变量

image.png

image.png

image.png

image.png

int age=20;//4个字节的空间

image.png

image.png

变量的作用域 作用域:代码所用的名字不总是有效/可用的,名字的可用性代码范围即为作用域

image.png

image.png

image.png

#define _CRT_SECURE_NO_WARNINGS 1 默认装在第一行

image.png

const int n = 10;//n是常变量,是个变量,但是具有常属性 int arr[n] = { 0 };

#define MAX 10 //定义标识符常量

enum Color{ RED, BLUE, YELLOW };

int main(){ enum Color color=BLUE; }

image.png

image.png

字符串 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码值

image.png

image.png

strlen() 计算字符串的长度 没有\0的长度

image.png

\0是个转义字符,在字符串中是结束标志 转义字符,转变原来的意思

image.png

image.png

image.png

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 image.png

image.png

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语言编程学习 仅做个人记录。