初识C语言一

本文介绍了C语言的基础知识,包括main函数的唯一性、各种数据类型如字符、整型和浮点型的使用,以及sizeof和strlen的区别。详细讲解了字符串的表示、长度计算及转义字符的应用。此外,还讨论了变量的作用域和生命周期,以及常量的种类。最后,提到了注释在代码中的重要性。
摘要由CSDN通过智能技术生成

1. main函数是程序的入口,一个工程中main函数有且仅有一个

2. 数据类型

(1)char            字符数据类型 

(2)short           短整形

(3)int                整形

(4)long             长整形

(5)long long    更长的整形

(6)float             单精度浮点数

(7)double         双精度浮点型 

注:(1)C语言没有字符串类型

       (2)  sizeof是一个操作符(运算符),sizeof 是用来计算变量或者类型所占据内存的大小-单位是字节,任何类型都可以使用,只关注空间大小,sizeof的括号只有在计算数据类型(int...)大小时才不可省略

       (3)strlen是一个函数,计算的是字符串的长度,并且只能针对字符串,关注的字符串中是否有\0,计算的是\0之前的字符个数

      (3)sizeof计算值包含隐藏的\0(字符串中),而strlen计算的为有效值因此不含\0,使用strlen计算字符长度时,如果是单个字符计算需带上\0( 单个字符不会默认带上\0,并且strlen在单个字符中的\0不会计入长度但是sizeof会 )不然为随机值,strlen根据\0为结束标志,而字符串不需要是因为字符串隐藏了\0(此处的 \0为一个字符)

        (4) char归属于整形

#include <string.h>

int main()
{
	//可以把字符串放在字符数组中
	char ch = "abc";//err
	char arr1[] = "abc";
	char arr2[] = {'a', 'b', 'c', '\0'};
    char arr3[] = {'a', 'b', 'c'};

	printf("%d\n", strlen(arr1));//自带隐藏的\0,所以为3
	printf("%d\n", strlen(arr2));//因为\0不算,所以为也为3
   	printf("%d\n", strlen(arr3));//没有\0,所以为随机值
    printf("%d\n", sizeof(arr1));//因为有隐藏的\0,所以为4
    printf("%d\n", sizeof(arr2));//4个字符,所以为4
    printf("%d\n", sizeof(arr3));//3个字符,所以为3
    
    
	//strlen
	//string length - 求字符串长度的函数
	
	int len = strlen("abc");
	printf("%d\n", len);

	printf("%s\n", arr1);
	printf("%s\n", arr2);


	printf("%s\n", "hehe");
	printf("hehe\n");

	return 0;
}

(4)使用strlen函数需使用 #include <string.h> 头文件

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;

}

这行代码即可测算出每种类型的大小

3. 常量、变量

(1)变量

( 创建变量时最好初始化变量,不然变量的值为随机值 )

Ⅰ.  局部变量

Ⅱ.  全局变量

#include <stdio.h>
int global = 2021;//全局变量
int main()
{
    int local = 2020;//局部变量
    //下面定义的global会不会有问题?
    int global = 2021;//局部变量
    printf("global = %d\n", global);
    return 0;
}

注1:当局部变量和全局变量同名的时候,局部变量优先使用。

注2:scanf使用时,切勿忘记‘&’

Ⅲ.  变量的作用和生命周期

a.   (1) 局部变量的作用域是变量所在的局部范围。
      (2)全局变量的作用域是整个工程。

b.   (1)局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
      (2)全局变量的生命周期是:整个程序的生命周期。

(2)常量

a.   字面常量
b.   const 修饰的常变量
c.    #define 定义的标识符常量
d.    枚举常量(enum)

(以下代码为例子)

#include <stdio.h>
//举例
enum Sex   //定义枚举常量
{
    MALE,
    FEMALE,
    SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    
    //#define的标识符常量 演示
    #define MAX 100
    printf("max = %d\n", MAX);
    
    //枚举常量演示
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET);

    return 0;

}

 注1:枚举常量的默认是从0开始,依次向下递增1的

注2:
上面例子上的pai被称为const修饰的常变量,const修饰的常变量在C语言中只是在语法层面限制了
变量pai不能直接被改变,但是pai本质上还是一个变量的,所以叫常变量。

4. 字符串

需要“”括起来,字符则使用‘’括起来

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

(1)转义字符

注:转义字符=一个字符

//打印目录的错误例子:
#include <stdio.h>
int main()
{
 printf("c:\code\test.c\n");
    return 0;
}




//打印一个'
//打印一个"
#include <stdio.h>
int main()
{
    //问题1:在屏幕上打印一个单引号',怎么做?
    //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    return 0;
}




//笔试题:
#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

已列出一些转义字符:

\?    在书写连续多个问号时使用,防止他们被解析成三字母词
\'    用于表示字符常量'
\“    用于表示一个字符串内部的双引号
\\    用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a    警告字符,蜂鸣
\b    退格符
\f    进纸符
\n    换行
\r    回车
\t    水平制表符
\v    垂直制表符
\ddd  ddd表示1~3个八进制的数字。 如: \130 X
\xdd  dd表示2个十六进制数字。 如: \x30 0

 注: ??)   三字母词  -->  ]

5. 注释

注释有两种风格:
C语言风格的注释  /*xxxxxx*/
缺陷:不能嵌套注释
C++风格的注释     //xxxxxxxx
可以注释一行也可以注释多行

1. 代码复杂,最好加上注释

2. 代码暂时不要的时候,也可以注释掉

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hiland.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值