初识C语言《一》

本文详细介绍了C语言的基础知识,包括计算机语言的起源、C语言的标准、基本数据类型、常量和变量、字符串、注释、选择语句、循环语句以及函数的使用。此外,还讲解了数组、指针、内存管理和预处理宏等核心概念,通过实例代码展示了如何编写和运行C程序。文章旨在帮助初学者理解C语言并掌握其基本编程技巧。
摘要由CSDN通过智能技术生成
  1. 什么是C语言

         什么是C语言 计算机语言;计算机语言是什么?

        人和计算机交流的语言:c、c++,Java,python

        语言的发展:二进制语言;

        硬件-电 -正电(1)-负电(0)

        国际标准

        ANSIC-C89/C90

        C99/C11并不流行不少编译器不支持

  1. 第一个C语言程序

写c代码:1.创建工程

                 2.创建文件:添加源文件test.c

c代码:.c-源文件,.h头文件head 

#include<stdio.h>

    //包含一个叫stdio.h的文件
    //std-标准 standard intput output
    //int 是整型的意思
    //main前面的int表示main函数调用返回一个整型值
    //这里完成任务
    //在屏幕上输出hello world
    //函数printf-function-printf-打印函数
    //库函数-C语言本身提供给我们使用的函数
    //别人的东西-打招呼
int main()//主函数-程序的入口main函数有且仅有一个(fn+f10进行监视)
{
    printf("hello world\n");
    return 0;
}//点击键盘f5运行

怎么查看上述代码运行结果

 数据类型

        char        //字符数据类型 

        short        //短整型

        int           //整型

        long        //长整型

        long long//更长的整型

        float          //单精度浮点数

        double       //双精度浮点数

//char
int main()
{
    //char ch='A';//内存
    //printf("%c\n",ch);//%c---打印字符格式的数据
 //20
//short int ---短整型
//int  ---整型
//long--长整型
//float---单精度浮点型
    int age=20;
    printf("%d\n",age);//%d---打印整型十进制数据

retrurn 0;
}

%d--打印整型

%c--打印字符

%f--打印浮点型数字--小数

%p--以地址的形式打印

%x--以16进制数字打印

  • 为什么出现这么多的类型?
  • 每种类型的大小是多少?
int main()
{
    printf("%d\n",sizeof(char));//1
    printf("%d\n",sizeof(short));//2       
    printf("%d\n",sizeof(int));//4                
    printf("%d\n",sizeof(long));//4
    printf("%d\n",sizeof(long long));//8    
    printf("%d\n",sizeof(float));//4
    printf("%d\n",sizeof(double));//8
    return 0;
}

字节:计算机中的单位:bit--比特位;byte--字节。一个字节=八个比特位大小 

#include<stdio.h>
int main()
{
    //年龄
    //20
    short age=20;//向内存申请2个字节=16bit位,用来存放20
    float weight=95.6f;//向内存申请4个字节存放小数
return 0;
}

常量变量

生活中的有些值是不变的(比如:圆周率,性别())

有些值是可以改变的

定义变量的方式

全局变量和局部变量

int num2=20;//全局变量定义在代码块({})之外的变量

int main()

{
    int num1=10;//局部变量
    return 0;
}
#include<sdtio.h>

int a=100;

int main()
{
    //int a=10;
    //局部变量和全局变量的名字建议不要相同-容易误会,产生bug
    //当局部变量和全局变量的名字重复时,局部变量优先
    printf("%d\n".a);
    
    return 0;
}

变量的使用

例子:两个数相加

#include<stdio.h>
 
int main()
{
    //计算2个数的和
    int num1=0;
    int num2=0;
    int sum=0;

    //输入数据--使用输入函数scanf
    scanf("%d%d",&num1,&num2);//取地址符号
    
    //C语言语法规定,变量要定义在当前代码块的最前面
    sum=num1+num2;
    printf("sum=%d\n",sum);
    return 0;
}

变量的作用域和生命周期

作用域:1.局部变量的作用域是变量所在的局部范围

                2.全局变量的作用域是整个工程

生命周期:变量的生命周期是指变量的创建到变量销毁之间的一个时间段

                1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束

                2.全局变量的生命周期是:整个程序的生命周期 

 #define _CRT_SECURE_NO_WARNINGS

//加在源文件的下面

scanfC语言提供的

scanf_s不是标准C语言提供的,是VS编译器提供的

跨平台性/可移植性//scanf strcpy strlen strcat 不安全,VS都会要求加_s

常量

C语言中的常量和变量的定义的形式有所差异

C语言中的常量分为一下几种:

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量
  • 枚举常量
#include<stdio.h>

int main()
{
    //const---常属性
    const int n=10;//n是变量,但是又有常属性,所以我们说n是常变量
    //int arr[n]={0};
    n=20;

    //const修饰的常变量
    //const int num=4;
   // printf("%d\n",num);
   // num=8;
   // printf("%d\n",num);
    //3;//字面常量
    //100;
    //3.14;//
        
    
}
#include<sdtio.h>


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

int main()
{
    int arr[MAX]={0};
    printf("%d\n",MAX);
return 0;
}
//4.枚举常量
//枚举--一一列举
//性别:男 女 保密
//三原色:红 黄 蓝
//星期:1 2 3 4 5 6 7 
#include<stdio.h>
//枚举关键字--enum


enum Sex
{
    MALE;
    FEMEALE;
    SECRET
};

//MALE FEMALE SECRET--枚举常量
int main()
{
    //enum Sex s=FEMALE;
    printf("%d\n",MALE);        //默认为0    
    printf("%d\n",FEMALE);      //1   
    printf("%d\n",SECRET);      //2


  return 0;
}

字符串+转义字符+注释

        字符串 

                "hello world"这种由双引号(double quote)引起来的一串字符称为字符串字面值(string literal)或者简称字符串。

                注:字符串的结束标志的一个\0的转义字符。在计算字符串长度的时候\0的结束标志,不算做字符串内容

#include<stdio.h>
//数据在计算机上存储的时候,存储的是二进制
//a-97
//A-65
//......
//ASCII表
int main()
{
    char arr1[]="abc";//数组
    //"abc"---'a''b''c''\0'-----'\0'字符串的结束标识
    char arr2[]={'a','b','c'};
    //char arr2[]={'a','b','c','\0'};//后面添加一个0则输出成功
    printf("%s\n",arr1);
    printf("%s\n",arr2);


    return 0;
}

运行结果:

 

int main()
{
    char arr1[]={"abc"};
    char arr2[]={'a','b','c'};
    printf("%d\n",strlen(arr1));//strlen--string length计算字符串长度
    printf("%d\n",strlen(arr2));20

}

运行结果:

 arr2直到找到\0才会停止,因此arr1输出3,arr2输出随机值。

转义字符:转变原来的意思

int main()
{
    printf("abcn");
    printf("abc\n");
    return 0;
}

.....

 \后面之间跟数字表示8进制数字

\后面加x再加数字表示16进制数字(包含\算一个字符)

//根据上表转义
int main()
{    
    //printf("c:\\test\\test.c");
    //printf("%c\n",'\'');
    return 0;
}
#include<sdtio.h>
#include<string.h>

int main()
{    
    printf("%d\n",strlen("c:\test\32\test.c"));//13
//       \t是一个字符,\32也是一个转义字符
//32----32是两个八进制数字
//32作为八进制代表的那个十进制数字作为ASCII码
    return 0;
}
#include<stdio.h>
int main()
{
    printf("%c\n",'\x61');//转义字符
        //61->a;
        //printf("%c\n",'\132');
        //32---32是2个8进制数字
        //32作为8进制代表那个十进制数字,作为ASCII码值,对应的字符
        //32--》10进制  26->ASCII码值代表的字符
return 0;

}

注释

1.代码中有不需要的代码可以直接删除,也可以注释掉

2.代码中有些代码比较难懂,可以加一下注释文字

注释的风格有两种:

  • C语言风格的注释/*xxxxxxxx*/
    • 缺陷:不能嵌套注释(只要遇到*/就会结束)
    • 注释选中行crtl+k,crtl+c
    • 取消注释crtl+k,crtl+u
  • C++风格的注释//xxxxxxxx
    • 可以注释一行也可以注释多行

选择语句

if语句

int main()
{
    int input
    printf("加入学习\n");
    printf("你要好好学习吗?(1/0)>:")
    scanf("%d",&input);//1/0
    if(input==1)
        printf("好工作");
    else
        printf("失业");
    return 0;

}

循环语句:

whlie语句

for语句

do....while语句

int main()
{
    int line=0;
    printf("加入学习\n");

    while(line<20000)
    {
        printf("敲一行代码 %d",line);
        line++;
    }
    if(line>=20000)
    printf("好工作");
return 0;

}

函数

例如之前的两个数相加利用函数

#include<stdio.h>
//ADD就是自定义函数
ADD(int x,int y)//ADD函数名下面为函数体
{
    int z=x+y;
    return z;
}
 
int main()
{
    int num1=10;
    int num2=20;
    int sum=0
    int a=100;
    int b=200;
    sum=ADD(num1,num2);

    sum=ADD(a,b)
    printf("sum=%d\n",sum);
    return 0;
}

数组

C语言中给了数组的定义:一组相同类型元素的集合

#include<sdtio.h>
int main()
{
    int arr[10]={1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
    //0-9
    int i=0;
    while(i<10)//利用循环遍历数组
    {
        printf("%d ",arr[i]);
        i++;
    }

    //printf("%d",arr[4]);//下标的方式访问元素
    //char ch[20];
    //float arr[5]
    return 0;
}

数组有对应的下标默认是从0开始

 操作符...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值