1. include 头文件包含

#include <stdio.h>这个是hello world程序的第一句话
# 代表预编译指令
#include的意思就是头文件包含,使用C语言库函数需要提前包含库函数对应的头文件。
stdio.h这个文件在操作系统的系统目录下

include有两种写法
#include <文件名>,如果文件在系统目录下,那么需要用<>
#include “文件名”,如果文件在当前目录下,那么用""

2. main函数

main函数又叫主函数,main函数是c语言程序的入口,程序是从main函数开始执行的,一个c语言程序中只能有一个main函数。

c语言可执行程序必须也只能有一个main函数。

3. 注释

//叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读, 行注释是从c++语言借鉴过来的

/* */ 叫块注释,块注释是c语言标准的注释方法

4. {}括号,程序体和代码块

C语言每句可执行代码都是;结尾

{}叫代码块,一个代码块内部可以有一条或者多条语句

所有的可执行语句必须是在代码块里面

所有的函数都是由

函数名

程序体,{语句}组成的。

5. 声明和定义

int a; //定义一个变量

extern int b; // 声明一个变量

int和extern都是c语言的关键字,a和b是用户可以自己起的名字

6. C语言变量命名规范

可以使用大小写字母,下划线,数字,但第一个字母必须是字母或者下划线,字母区分大小写。

7. printf函数

printf是c语言库函数,功能是向标准输出设备输出一个字符串

printf(“hello world\n”);//\n的意思是回车换行

8. return 语句

return代表函数执行完毕,返回return代表函数的终止.

如果main定义的时候前面是int,那么return后面就需要写一个整数,如果main定义的时候前面是void,那么return后面什么也不需要写

在main函数中return 0代表程序执行成功,return -1代表程序执行失败

在C语言中 int main()和 void main都可以

int main()和void main()在c语言中是一样的,但C++只接受int main这种定义方式。

9. system函数调用

在使用system函数之前需要包含stdlib.h这个头文件,system主要的功能是通过程序执行另外一个程序

system返回值在windows和unix下的不同

如果在命令行执行一个程序,那么这个程序的调用者就是操作系统,如果在代码中通过system执行一个程序,那么这个程序的调用者就是自己写的代码本身.

C语言所有的库函数调用,只能保证语法是一致的,但不能保证执行结果是一致的,同样的库函数在不同的操作系统下执行结果可能是一样的,也可能是不一样的。

POSIX

POSIX是一个标准,只要符合这个标准的函数,在不同的系统下执行的结果就可以一致。

Unix和linux很多库函数都是支持POSIX的,但windows支持的比较差。

如果将unix代码移植到linux一般代价很小,如果把windows’代码移植到unixl或者linux就比较麻烦。

10. C语言编译过程,GCC参数简介

C语言编译过程

1.预编译->2.编译->3.链接

-E 预编译

Gcc –E参数代表预编译

gcc -o a11.c -E a1.c

预编译a1.c,预编译之后的文件名叫a11.c

预编译功能之一:将#include包含的头文件做简单的文本替换

在C语言中#开头的语句又叫预编译指令

预编译功能之二:将代码中的注释删除

-c编译

编译的作用是把文本的c语言编译为二进制的指令

gcc -c a11.c

编译a11.c,编译后的文件名叫a.o

链接

C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

Gcc没有单独的链接参数

gcc -o a.o

链接a.o,最后生成的文件叫a

11. 操作系统

64位和32位操作系统区别

CPU内存结构和寄存器

寄存器是CPU内部最基本的存储单元

CPU对外是通过总线来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU

如果总线是32位,寄存器也是32位的,那么这个CPU就是32位CPU

有一种CPU内部的寄存器是32位的,但总线是16位,准32位CPU

所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以识别32位的指令

在64位的CPU构架上运行了64位的软件操作系统,那么这个系统是64位

在64位的CPU构架上,运行了32位的软件操作系统,那么这个系统就是32位

64位的软件不不能运行在32位的CPU之上的。

32位的系统最大支持4G的内存,64位则可以大于这个限制

RISC与CISC CPU架构

RISC精简指令集

CISC复杂指令集

SPARC,X86与ARM

SPARC,ARM都属于精简指令集

X86典型复杂指令

12. 常用IDE快捷键

QT常用快捷键

Ctrl + I, 自动格式化代码

Ctrl + /, 注释/取消注释

Alt + enter, 自动完成类函数定义

F9, 设置断点

F5,调试运行

Ctrl + r,不调试运行

Ctrl + b,编译,不运行

F10, next调试

F11, step调试

VS常用快捷键

Ctrl + k,Ctrl + f, 自动格式化代码

Ctrl +k, Ctrl + c, 注释代码

Ctrl + k,Ctrl + u, 取消注释代码

F9, 设置断点

F5,调试运行

Ctrl + F5,不调试运行

Ctrl + Shift + b,编译,不运行

F10, next调试

F11, step调试

C语言基础(1)-基本语法及注意事项相关推荐

  1. r语言折线图_R语言基础入门视频教程——语法篇(完结)

    这个视频分了2个阶段录制的,第1阶段有10章的内容,在文章:生物专业学生0基础入门R语言语法视频教程,就有说明,后面把最后2章补录完成啦,也算是一个结局啦.下面是目录: 第01章:R语言简介(免费) ...

  2. python标识符的特点_Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别...

    Python语言基础 1.Python语法特点 注释: 单行注释:# #注释 单行注释分为两种情况, 例:第一种 #用于计算bim数值 bim=weight/(height*height) 第二种: ...

  3. Chapter Two : Python 语言基础、运算符与表达式、程序的控制结构合集

    目录 一.Python 语言基础 1. Python 语法规则 2. 关键字与标识符 3. 变量 4. 基本数据类型 5. 输入与输出 二.运算符与表达式 1. 算术运算符 2. 赋值运算符 3. 比 ...

  4. Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释.基础结构(重要) 1.GO语言基础语法---注释.基础结构 //程序所属的包,且必须在源文件代码第一行 package mainimport "fmt&quo ...

  5. [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了什么是GO语言 ...

  6. html(+css)/01/html语言基础,标记,标记语法,html文档结构

    厚积薄发 html(+css)/01/html语言基础,标记,标记语法,html文档结构 工资:4500元左右/月 最好的学习html的方法,就是多参考别人的网页源代码: 查看源代码: 1,打开网页/ ...

  7. Python程序设计语言基础01:Python基本语法元素

    目录 1. 编译和解释 1.1 编译 1.2 解释 2. 程序的基本编写方法IPO 2.1 含义 2.2 输入 2.3 输出 2.4 处理 3. 使用编程解决问题 3.1 问题的计算部分 3.2 编程 ...

  8. 一篇文章带你玩转C语言基础语法5:条件判断 if else 语句与分支 。(千字总结)

    我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位

  9. Go语言 基础语法学习 (未完待更......

    文章目录 一 Go语言结构 1 Go Hello world实例 2 执行Go程序 二 Go语言基础语法 1 Go标记 2 行分隔符 3 注释 4 标识符 5 一些关键字 6 Go语言的空格 7 格式 ...

最新文章

  1. 人工智能将给我们的高等教育带来怎样的机遇和挑战?
  2. dedecms前端无法调用自定义变量怎么解决
  3. 用scikit-learn和pandas学习线性回归
  4. PowerDesigner生成mysql字段comment 注释
  5. 如何升级成鸿蒙,如何将自己的华为手机升级成鸿蒙系统
  6. Java文档阅读笔记-Spring Boot JDBC
  7. Linux删除乱码文件
  8. usb升级linux固件,Linux USB驱动(4)---CY68013固件加载驱动
  9. HC-05蓝牙模块AT指令调试
  10. 连载三:RobotFramework+Selenium+Jenkins分布式构建
  11. 经典算法详解(2)寻找数组中的次大数
  12. Andro - Multipurpose OpenCart 2.X 自适应主题模板 ABC-0651
  13. 2019马哥python的百度网盘_马哥 2018 Python 全栈视频
  14. 微信H5开发wx.config授权invalid signature
  15. 【参考文献】平滑肌细胞生长培养
  16. 2021朝阳启声学校高考成绩查询,梦在前方 路在脚下 ———潮阳启声学校2019届高考80天誓师大会...
  17. .net EF 事务TransactionScope和BeginTransaction的用法
  18. 火影忍者“背后的故事”
  19. android慢快门相机,慢快门app-Slow Shutter Cam官网版(附教程)预约 _5577安卓网
  20. ADAS/AD控制器模块开发11 - UDS与配置、校准

热门文章

  1. 基于持续集成的轻量级接口自动化测试 【持续更新...】
  2. 基本排序方法实现:选择排序、插入排序、希尔排序
  3. golang 文件md5_golang 计算大文件md5
  4. kmeans不足举例(code)
  5. 华为的鸿蒙系统是安卓吗,华为鸿蒙,一个本属于2025年的产品
  6. linux 修改分辨率lcd_如何在Ubuntu 12.04中为LCD添加显示分辨率? xrandr问题
  7. LSTM模型实战案例:TensorFlow实现预测3位彩票号码
  8. python基础函数及用法意思_Python基础之函数基本用法与进阶详解
  9. 只显示小方格_excel中最有效率的插件——方方格子
  10. linux python 升级脚本,Linux环境下python2.7.6升级python3.5.2