初识C语言(上)

目录

1.  第一个C语言程序

2. 数据类型

3. 变量、常量

3.1 定义变量的方法

3.2 变量的分类

3.3 变量的使用

3.4 变量的作用域和生民周期

3.5 常量

4. 字符串;转义字符

4.1 字符串

4.2 转义字符

5.  注释

6.  选择语句

7. 循环语句


1.  第一个C语言程序

#include<stdio.h>

int main()
{
    printf("hello code\n");
    return 0;
}
//main函数是程序的入口
//一个工程中main函数有且仅有一个
//<stdio.h>中 std 为标准;i为input(输入),o为output(输出)
//printf是一个库函数,用来打印数据

a.这里写程序的软件不同运行程序的快捷键也不同。ex:VS2019使用:ctrl+F5。而CLion用shift+F10。

b.缩进的快捷键:Tab向右,shift+Tab向左。(但是在写这篇文章中代码时,Tab可以向右,但是shift+Tab还是向右不知道什么情况,编程软件里这么操作是没问题的)


2. 数据类型

char        字符数据类型    打印时通配符:%c
short       短整型                      %hd
int         整型                        %d
long        长整型                      %ld
long long   更长的整型                  %lld
float       单精度浮点型                %f
double      双精度浮点型                %lf

a.为什么会出现这么多的数据类型呢?因为C语言只是一门编程语言,一种工具,而在生活中就存在这些类型的数据,引入这么多的数据类型是为了更加丰富,真实的表示生活中的各种值。

b.那么每种类型的大小是多少呢?

#include <stdio.h>

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 
    printf("%d\n",sizeof(long double));   //12 单位是字节
    return 0;
}

sizeof(char)即为char类型的字节大小,C语言中规定sizeof(long)≥sizeof(int)。

c.类型的使用

char ch = 'z';
int height = 175;
int weight = 70;

int,char 实际上是向内存申请空间,而后面的身高体重是名称。


3. 变量、常量

生活中有些值是不变的(例如:性别,身份证号等)这类不变的值在C语言中用常量的概念来表示而有些值是可变的(例如:身高体重肺活量)这类可变的值则用变量来表示。

3.1 定义变量的方法

int age = 23;
float wight = 74.5f;
char ch = 'z';

3.2 变量的分类

分为局部变量全局变量

#include<stdio.h>

int globalv = 2024;  //全局变量,大括号外
int main()
{
    int localv = 2023;//局部变量,大括号内
    int globalv = 2022;  //这时将全局变量定义为2022会出现什么问题呢?
    printf("globalv = %d",global);
}

局部变量全局变量同名的时侯,局部变量优先使用!建议在日常编程中不要同名。所以上图代码打印出globalv=2022,不会有什么问题。但需要注意的是同一范围内同一变量不可以重复定义。

3.3 变量的使用

#include<stdio.h>

int main()
{
    int num1 = 0;
    int num2 = 0;                //初始化,默认存放随机值
    int sum = 0;
    printf("输入两个数:");
    scanf("%d %d",&num1,&num2);  //%d与%d之间为空格,&num1与&num2之间为,&为取地址
    sum=num1+num2;
    printf("sum=%d\n",sum);      //输出一个十进制整数
    return 0;
}

这里在VS中scanf好像会出错,它会提示使用scanf_s,但这个函数是VS编译器自己提供的,只有VS认识,所以还是在源文件第一行加#define (_CRT...)系统提示的一串。

3.4 变量的作用域和生命周期

a.作用域:限定某个变量的可用性的代码范围就是这个变量的作用域。局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程。

b.生命周期:

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

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

3.5 常量

#include <stdio.h>

enum Sex
{
    MALE,
    FEMALE,
};              //MALE FEMALE是枚举常量,enum sex不是枚举常量

int main()
{
    2024;              //字面常量
    'z';               //字符
    "abcd";            //字符串
    const float pai = 3.14f; //pai是const修饰的常变量,本质是变量,具有常量属性。
    #define min 1
    printf("m=%d\n",min);
    printf("%d\n",MALE);
    printf("%d\n",FEMALE);
    return 0;
}

枚举常量的默认是从0开始,依次向下递增1。上面例子中被const修饰的常变量在语法层面限制了变量pai不能直接被改变,但pai本质上还是一个变量,所以叫常变量。


4. 字符串;转义字符

4.1 字符串

“hello blog\n”双引号引起来的一串字符被称为字符串。字符串的结束标志是一个\0的转义字符。在计算字符串长度时\0是结束标志,不算做字符串内容。

#include<stdio.h>

int main()
{
    char arr1[] = "mit";
    char arr2[] = {'m','i','t'};
    char arr3[] = {'M','I','T','\0'};
    printf("%s",arr1);
    printf("%s",arr2);
    printf("%s",arr3);
    return 0;
}

arr[]的方括号里会根据字符串自动确定大小。第一个字符数组arr1中的“mit”后隐藏了一个 \0。第二个数组没有\0,只有3个字符,打印出来不会停,arr3中的\0就是让它停的字符。

%s打印字符串。

int len = strlen("abc");//求一个字符串的长度函数,头文件应该为<string.h>。

4.2 转义字符

假如我们想在屏幕上打印一个目录

"c:\test\628\test.c"

若我们这样写:

#include<stdio.h>

int main()
{
    printf(""c:\test\628\test.c"")
    return 0;
}

实际并不会按照我们的意愿输出,这时便可引入转义字符了:

转义字符解释
\?在书写连续多个问号时使用,防止他们被解析成三字母词("??)"变成"]",在问号前加入\可避免这种情况)
\'用于表示字符常量‘
\''用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f换页,将当前位置移到下一页的开头。
\n换行
\r回车

\t

水平制表符
\v垂直制表符
\dddddd表示1-3个八进制数字。如\130X,当然八进制是没有8的
\xdddd表示2个十六进制的数字。如\x30
#include<stdio.h>

int main()
{
    printf("%c\n",'\'');        //在屏幕上打印一个单引号
    printf("%c\n","\"");        //在屏幕上打印一个双引号
    return 0;
}

ex:

#include<string.h>
#include<stdio.h>

int main()
{
    printf("%d\n",strlen("abcdef"));                6
    printf("%d\n",strlen("c:\test\628\test.c"));    14
    return 0;
}

注:\62被解析成一个转义字符。\628不是 \ddd,因为“8”。


5.  注释

作用:梳理思路,对复杂代码进行解释,帮助自己,帮助他人。代码中不需要的代码也可以直接删除,不过我更喜欢注释(虽然只是一些非常简单的代码,但是在一个文件中看到自己手打的代码还是很有成就感的)

注释有两种风格:

C语言风格注释:/*xxxxxxxxxxxxx*/,缺点是不能嵌套注释

C++风格注释://xxxxxxxxxxx,可以注释多行

快捷键VS2019中:ctrl+c+k        CLion中ctrl+/


6.  选择语句

#include<stdio.h>

int main()
{
    int coding = 0;
    printf("我会敲代码吗?(选择1或0)");
    scanf("%d",&coding);
    if(coding==1);
    {
        printf("good\n");
    }
    else
    {
        printf("jijijijibabayabayabay\n");
    }
    return 0;
}

7. 循环语句

  1. while
  2. for(见分支与循环语句)
  3. do...while(见分支与循环语句)

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值