C语言学习笔记——简介

C语言配置文件相关内容知识

${workspaceRoot} 当前打开的文件夹的绝对路径+文件夹的名字
${workspaceRootFolderName} 当前打开的文件夹的名字
${file} 当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名
${relativeFile} 从当前打开的文件夹到当前打开的文件的路径
${fileBasename} 当前打开的文件名+后缀名,不包括路径
${fileBasenameNoExtension} 当前打开的文件的文件名,不包括路径和后缀名
${fileDirname} 当前打开的文件所在的绝对路径,不包括文件名
${fileExtname} 当前打开的文件的后缀名
${cwd} 同 pwd , 当前绝对路径
${lineNumber} 当前打开的文件,光标所在的行数

C的关键字和标识符

C关键字

关键字是编程中使用的预定义保留字,对编译器具有特殊含义。关键字是语法的一部分,不能用作标识符。

int car;

其中,int是一个关键字,表示car是类型(整型)的变量

C标识符

标识符是指赋予实体的名称,例如变量、函数、结构等。

标识符必须是唯一的。创建它们是为了给实体一个唯一的名称,以便在程序执行期间识别

int car;
double bigCar;

这里carbigCar是标识符
还要记住,标识符名称必须与关键字不同,不能用int作标识符,因为int是关键字

命令标识符的规则

  1. 有效的标识符可以包含字母(大小写字母)、数字和下划线
  2. 标识符的第一个字符应该是字母或下划线
  3. 不能使用关键字作为标识符。
  4. 标识符的长度没有规定,但是如果标识符超过31个字符,可能会在某些编译器中遇到问题

C变量、常量和文字

变量

在编程中,变量是保存数据的容器(存储区)

为了指示存储区域,每个变量都有一个唯一的名称标识符),变量名只是内存位置的符号表示

int playerScore = 95;

其中这里playerScoreint类型变量,其中变量被分配了一个整数值95
变量的值可以更改,因此名称变量

char test = 'a';
//some code
test = 'l';

变量命名规则

  1. 变量名只能包含字母(大小写字母)、数字和下划线
  2. 变量的字母应该是字母或下划线
  3. 变量名(标识符)的长度没有规定。但是如果变量名超过31个字符,可能会在某些编译器中遇到问题

注意:尽量给变量一个有意义的名称,为了效率也要尽量简化。如firstName可以变为fn

C是一种强类型语言,这意味着变量类型一旦被声明就不能改变,例如:

int num = '5';      //整型变量
num = '5.5'; //错误
double num; //错误

在这里,类型int的变量是num,不可以分配一个浮点型值5.5到这个变量。此外,不能将变量的数据类型重新定义为double。如果要将十进制值存储在C中,需要将其类型声明为doublefloat

字面量

字面量适用于表示固定值的数据。可以直接在代码中使用,比如:1,2.5,'C'等,这里面的1,2.5,'C'是文字

1.整型

整型是没有任何小数或指数部分的数学文字(与数字相关联),C语言中有三种类型的整数文字:

  • 十进制(以10为基数) 在C中想要输出,使用%d
  • 八进制(以8为基数) 在C中想要输出,使用%o
  • 十六进制(以16为基数) 在C中想要输出,使用%x

十进制: 0、-9、22等
八进制:021、077、033等
十六进制:0x7f、0x2a、0x521等

在C语言中,八进制以0开头,十六进制以0x开头,想要显示各进制的前缀0,0x,0X必须分别使用%#o,%#x,%#X

2.浮点型

浮点型是具有小数形式或指数形式的数字文字:
-2.0
0.02134
3.14159

3.字符型

字符型是通过将单个字符括在单括号内来创建的,如:'a','b','{'

4.转义符

C中需要使用无法键入或者具有特殊含义的字符,比如换行、制表符、问号等这一类字符
为了这些字符,所以有了转义符

转义符 作用
\b 退格,将当前位置移到前一列
\f 换页,将当前位置移到下页开头
\n 换行,将当前位置移到下一行开头
\r 回车,将当前位置移到本行开头
\t 水平制表,跳到下一个TAB位置
\v 垂直制表
\ 代表一个反斜线字符’'
' 代表一个单引号(撇号)字符
" 代表一个双引号字符
\0 空字符(NULL)
? 问号
\ddd 1到3位八进制数所代表的任意字符
\xhh 1到2位十六进制所代表的任意字符

5.字符串型

字符串型是用双引号括起来的字符序列,如:

"good"      //字符串常量
"" //空字符串
" " //空格字符串
"x" //单个字符的字符串
"My name is Zong JunShu\n\n" //用换行符打印字符串

常数

如果要定义一个不能改变的变量,可以使用const关键字,这将创建一个常量,如:

const double PI = 3.14;

注意我们添加了关键字const
这里,PI是一个符号常数,它的值不能改变

const double PI = 3.14;
PI = 2.9; //错误

还可以使用#define预处理器指令定义常量

基本内容

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

#define NYNAME "JZephyr"

int globalVar = 100;

int main(){
char firstLetter = 'Z'; //定义一个字符char型常量firstLetter,数值为"Z"
int age = 20; //定义int整型常量age
long int superBigNum = -327670000; //定义long int长整型常量superBigNum
float piValue = 3.14159; //定义float单精度浮点常量piValue
double reallyBigPi = 3.14159621238454598; //定义double双精度浮点常量reallyBigPi

printf("\n"); //打印换行符,执行一次回车换行

printf("This will print to screen\n\n"); //打印"This will print to screen\n\n"

printf("I'm %d years old.\n\n",age); //打印"I'm %d years old.\n\n",其中%d代表age的十进制值

printf("superBigNum is %ld.\n\n",superBigNum); //打印"superBigNum is %ld.\n\n",其中%ld代表输出long int类型的值

printf("PI = %.5f\n\n",piValue);

printf("big PI = %.10f\n\n",reallyBigPi);

printf("The first letter in my name is %c\n\n",firstLetter);

printf("My name is %s.\n\n","ZongJunShu");

char myName[] = "Zong JunShu"; //创建char字符型数组myName,值为"Zong JunShu"
strcpy(myName,"宗筠书"); //该strcpy()函数复制指向的字符串资源(包括空字符)到目的地,strcpy()函数再还返回复制的字符串
printf("My name is %s.\n\n",myName);
//最后输出结果为 My name is 宗筠书.
}

scanf()

用于接收用户的输入

char middleInitial;

printf("\n");

printf("What is your middle initial?");

scanf(" %c",&middleInitial); //使用&来接收数据

printf("middle initial: %c",middleInitial);

char firstName[30],lastName[30];

printf("What is your name?");

scanf(" %s %s", firstName, lastName);

printf("Your name is %s %c %s.\n\n",firstName,middleInitial,lastName);

int month,date,year;

printf("What's your birthzdn date?");

scanf(" %d/%d/%d",&month,&date,&year);

printf("Your birth date is %d/%d/%d",month,date,year);

评论
TwikooWaline
你无需删除空行,直接评论以获取最佳展示效果
加载头像
0%
互动
最新评论
正在加载中...
引用到评论
随便逛逛博客分类文章标签
复制地址关闭热评深色模式轉為繁體