C语言初学者小秦的Blog(1)

本文介绍了C语言的基础知识,包括C语言的入口函数main(),数据类型,变量,ASCII码,表达式和运算符,以及分支和循环控制。重点讲解了指针、数组、函数的使用,如printf函数和内存管理。此外,还涉及了结构体、枚举和共用体,以及头文件和工程管理。文章以一个简单的HelloWorld程序为例,详细解释了程序的每个部分和关键语法点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言大纲

1.C语言入口main()、数据类型、变量、赋值

2 ascii 码、表达式、运算符(位运算符)
3.分支流、控制流,循环
4. 数组、一维数组、二维数组、指针数组、函数指针、字符串数组
5. 指针、一级指针、二级指针、野指针、空指针
6. 函数的定义、调用、声明、静态函数、字符串函数( strcpy memcpy strstr strcat ),内联函数、递归函数
7. 内存管理,作用域,存储期
8. 结构体、枚举、共用体(联合体)
9. 头文件、工程管理文件
最简单的Hello World 程序:
#include <stdio.h>
 
int main(void)
{
        printf("Hello World! \n");//向终端输出一串字符串
        
        return 0;
}

 下面,让我们从整体来分析一下这个最简单的C语言程序,将这个最简单程序的各个部分剖析清楚,明白我们写下的字符的具体含义。

 (1)头文件

#include <stdio.h>

1.c语言程序中,任何字符(包括变量和函数)的使用,都是需要提前声明的。

2. 如果程序用到了系统库函数,那么就需要包含相应的系统头文件进行声明。
3. 上述代码中用到了库函数 printf, 而这个函数的声明在头文件 stdio.h 中,因此在改程序中需要包含此头文件
声明
概念 : 对源文件外定义的某个符号进行描述的过程,称为声明
作用 : 经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法判定语法错误
符号:变量、函数等

(2)主函数
1. 主函数是必须要有的,每一个语言程序都有 main 函数,哪怕是空的。
2. 主函数的名字是固定的,叫 main ,这个函数名不可被挪作他用。
3. 主函数是程序的入口,也就是程序开始运行的地方。
4. 主函数分解如下:

//int:返回值类型,代表主函数最终的执行结果是一个整型数据

//main(void):main是函数名,这个名字不能被挪作他用

//main(void):void是函数参数列表,可以省略

 int main(void)

{

}

(3)printf函数
    C 语言被称为是一种面向过程的模块化语言,所谓的模块,指的是一个个功能明确,各司其职的封装函数, 它们就像一块块积木,被合理有机的拼搭起来,形成复杂健壮的程序。
    在这之中,系统标准 C 库提供了非常多的 " 模块 ”,printf 就是其中之一,他的功能就是 : 向终端输出一段指定格式的数据。

printf("hello world! \n");//向终端输出一段字符串

(4)格式输出控制符
概念:函数 printf 被称为格式化 IO 函数,因为它事按照指定格式来操作数据的。以常见的整数,浮点数和字符串 为例,printf 函数相关的控制格式符如下所示:
// 格式化输出函数
printf ();
// 根据需要输出不同格式的数据
printf ( "%d\n" , 100 ); // 输出 1 个整数
printf ( "%d, %d\n" , 100 , 200 ); // 输出 2 个整数
printf ( "%f\n" , 3.14 ); // 输出浮点数
printf ( "%c\n" , 'x' ); // 输出字符
printf ( "%s\n" , "abcd" ); // 输出字符串
printf ( "a=%d, %s\n" , "abcd" ); // 输出字符串
语法点:
  • 类似%d%f被称为格式控制符
  • 一个格式控制符对应一个数据
  • '\n'是一个字符,表示回车符,详细ASCII码表

格式控制符:

1. 十进制整数: %d
printf ( "%d\n" , 123 ); // 整数用 %d 输出 ,'\n' 回车换行
2. 八进制整数: %o
printf ( "%#o\n" , 8 ); // 整数用 %#o 输出 , 显示前缀 '\n' 回车换行
3. 十六进制整数: %x
printf ( "%#x\n" , 10 ); // 整数用 %#x 输出 , 显示前缀 '\n' 回车换行
4. 字符: %c
printf ( "%c\n" , 'x' ); // 输出字符
5. 字符串: %s
printf ( "%s\n" , "abcd" ); // 输出字符串
6. 单精度浮点数: %f
printf ( "%.10f\n" , 3.1415926589 ); // 输出浮点数
7. 长双精度浮点数: %Lf long double
printf ( "%.10lf\n" , 3.1415926589 ); // 输出浮点数
8.双精度浮点数:%lf
printf ( "%.10lf\n" , 3.1415926589 ); // 输出浮点数
9.  地址: %p
printf ( "%p" , "qinhuiyan" ); // 输出 "abc" 的地址
(5)return语句
    c 语言中的关键字 return 的含义是结束一个函数,并返回某个数据(若有)。
   
    而具体到 main 函数中时,由于主函数 main 的结束同时也意味着整个程序的结束,因此在上述 hello world 程序中 return后整个程序就退出了。

int main()

{        ... ...
        // 一般而言,函数正常退出返回 0 ,非正常退出返回非 0
        return 0
}
注意: main 函数的返回值是给上一级进程 ( 运行中的程序 ) 的,因此理论上讲在当前的单进程程序中, main 函数的返 回值究竟是多少都无所谓,因为根本没有去使用这个返回值,除非在多进程程序中,进程间才需要使用main 函数的返回值来传递信息。

总结

// 没有头文件不会出现编译错误,但是会出现编译警告,提示隐式声明
// extern 的意思是函数声明,告诉编译器等一下我使用 printf 的时候不要警告
// extern int printf (const char *__restrict __format, ...);
// extern int scanf (const char *__restrict __format, ...) __wur;
#include <stdio.h>
// main 是程序的入口地址,公司老板
int main ()
{ // 程序工作的范围,边界,不能离开 {} 独立工作,所以,一个工程只有一个 main
// 函数,函数其实就是帮我们实现某个功能
// printf 帮我们输出 hello 到屏幕
printf ( "hello\n" );
int a ;
scanf ( "%d" , & a );
return 0 ; // 程序结束, return 0 表示正常退出
}
#include <stdio.h>
int main ( int argc , char const * argv [])
{
printf ( "hello wrold\n" );
// %d 格式输出符表示输出的内容是整数
printf ( "%d,%d\n" , 100 , 100 ); // 输出整数
printf ( "0%o\n" , 100 ); // 八进制输出
printf ( "0x%x\n" , 100 ); // 十六进制输出
printf ( "%c\n" , 'a' ); // 输出字符
printf ( "%s\n" , "abc" ); // 输出字符串
printf ( "%d,%c,%s\n" , 200 , 'b' , "abc" ); // 输出整数,字符,字符串
printf ( "%f\n" , 3.14 ); // 输出单精度小数
printf ( "%lf\n" , 3.1415926 ); // 输出双精度小数
printf ( "%.6lf\n" , 3.1415925 ); // %.6 表示输出小数点后 6 位,注意进位
printf ( "%p" , "qinhuiyan" ); // 输出 "abc" 的地址
return 0 ;
}

代码风格规范

  • 缩进:凡是有代码块的地方必须缩进,一对大括号{}代表一个代码块

  • 空格:标符号后面,一般加空格

  • 空行:不同逻辑段落中间,一般加空行

  • 符号命名:尽量能一望便知,做到顾名思义,避免使用无意义字符

下面,让我们学习了解Linux系统吧~~

Linux优点

  • 开放性

  • 完全免费

  • 多用户

  • 多任务

  • 良好的用户界面

  • 设备独立性

  • 提供了丰富的网络功能

  • 可靠的系统安全性(独立普通用户与超级用户)

  • 良好的可移植性

    国产操作系统

    uos

    麒麟os

      Linux常用命令

~: 表示家目录
/: 根目录
./:当前目录
../:上一级目录
双击tab键:自动补全内容,如果没有提示表示路径错误
选中内容表示复制,按滚轮表示粘贴内容
ctrl+shift+加号 : 终端界面变大
ctrl+减号 : 终端界面变小
按向上的箭头,调出上一次输入过的命令

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值