C语言基本结构、数据类型、常量、变量的初始化赋值等操作

本文介绍了C语言的基础知识,包括安装Linux下的C编译器gcc,C程序的基本结构(注释、预处理指令、主函数、函数体),数据类型(字符型、整型、浮点型、字符串)以及变量的声明、初始化和赋值。此外,还讲解了多变量操作和变量的初始化与赋值方法。
摘要由CSDN通过智能技术生成

一、C语言程序的基本结构

(一)安装C语言的编译器

  • Linux下C语言的编译器是gcc,以root用户登录,执行以下命令安装它:
yum -y install gcc
  • 注意,如果您的服务器没有安装gcc,以上命令就会安装最新版本的gcc,如果已经安装了gcc,就会更新到最新版本,所以,以上命令不管执行多少次都没有问题。
  • 安装gcc编译器的前提条件是你的服务器必须可以访问互联网。

(二)C程序的基本结构

  • C 程序主要包括以下部分:

1、注释(说明文字)

/*
 *  程序名:book1.c,此程序用于演示C程序的基本结构。
*/
// 预处理指令,把头文件stdio.h包含进来。
// standard input output
// 主函数main,这里是程序执行的起点。
// 调用printf函数在屏幕上输出文字。
// main函数返回
  • 以上是C程序的注释(说明文字),注释的目的是为了提高程序的可读性,是给程序员看的,不是给计算机看的,编译器编译程序时将忽略它。

/* */用于注释多行文字,/是开始,/是结束。

// 用于注释一行文字,可以独占一行,也可以放在代码的后面。

2、预处理指令

// 预处理指令,把头文件stdio.h包含进来。
#include <stdio.h>     // standard input output
  • 这一行是(编译)预处理指令,告诉 C 语言编译器在编译之前要包含stdio.h文件,程序中使用了printf函数,如果不包含它的头文件,编译时会出现警告或报错。

3、主函数入口

int main()
  • main是主函数,程序从这里开始执行。在同一程序中,main函数只能有一个。

4、主函数体

printf("我心匪石,不可转也。我心匪席,不可卷也。威仪棣棣,不可选也。\n");
return 0; // main函数返回
  • 主函数体的代码在一对花括号,本程序的主函数体有两行代码。
  • 第一行代码调用了printf函数,printf函数的功能是把内容输出到屏幕,这里是输出一行文字,文字结尾的\n表示换行,多个\n就可以输出多个换行。
  • 第二行代码return 0,表示主函数返回,程序退出。
  • 注意,main函数体中的空行和每行代码前面的空格是为了提高程序的可读性,对程序的功能没有任何影响。

(三)编译并执行C程序

  • 在Linux的命令行下用gcc命令编译源程序book1.c。
gcc -o book1 book1.c
  • 编译完成后,将生成目标程序book1(可执行程序名由-o参数指定),加./执行它。
./book1
  • 执行的结果是在屏幕上输出一行文字。
我心匪石,不可转也。我心匪席,不可卷也。威仪棣棣,不可选也。

二、数据类型

(一)、基本类型

  • C语言的基本数据类型包括字符型、整数型、浮点型。

1、字符型(char)

  • 描述单个字符(一个字节),用半角的单引号包含起来,如’a’、‘A’、‘1’、’$'等,键盘能输入的英文和半角的符号都是字符。
'A'   'B'   'C' ...... 'Z'
'a'   'b'   'c' ...... 'z'
'0'   '1'   '2' ...... '9'
'~'   '!'   '@' ...... '+'
  • 中文的汉字和标点符号是两个字节(GBK编码),不能算一个字符,以下都是非法的。
'好'
'。'
','
'¥'

2、整型(int)

  • 描述整数,整数在计算机上是准确表示的,如123、500、0、-10等。
123
500
0
-10

3、浮点型(float)

  • 描述实数,有小数位,如10.0、123.55、3459.98、-50.3,实数在计算机上一般是近似表示的。
10.0
123.55
345.98
-50.3

(二)、字符串

描述多个字符,用半角的双引号包含起来,可以是英文、数字、中文、标点符号,半角全角的都可以。

"a"
""
"西施"
"我心匪石,不可转也。我心匪席,不可卷也。威仪棣棣,不可选也。"
"我有100块钱。"
"1998"

(三)、构造类型

  • 由基本类型通过一定的构造方法构造出来的类型,包括数组和结构体。

(四)、指针类型

  • 指针可以存放内存变量和常量地址,主要用于函数的参数传递,极其重要,如果没有指针,C程序员将非常难受。

三、常量

  • 常量或常数,表示固定不变的数据,是具体的数据。
    ①、字符常量,如‘6’,‘a’,‘F’,不能是中文,例如’女’,因为一个汉字和全角的符号占两个字节(GBK编码)。
    ②、整型常量,如6,27,-299。
    ③、浮点型常量,如5.43,-2.3,5.67,6.0。
    ④、字符串常量,如"625",“女”。

四、变量

  • 常量是数据,变量是存放数据的容器,和常量在称呼上只差一个字,但不是兄弟关系,而是水与水桶的关系。
  • 变量使用前必须先进行声明(或定义),向操作系统申请一块内存空间,用于存放数据。

(一)整数型、字符型、浮点型变量

  • 变量的声明,也称之为变量的定义,或定义变量,或声明变量,这些都是程序员的习惯叫法,实际上都是同一个意思。
  • 定义整数型变量用关键字int,它是单词integer(整数)的缩写。
  int   ii;   // 定义整数型变量,用于存放整数。
  • 定义字符型变量用关键字char,它是单词character(字符)的缩写。
  char  cc;  // 定义字符型变量,用于存放字符。
  • 定义浮点型变量用关键字float或double,float的精度不够,实际开发中建议弃用。double,双精度,很精确的意思。
  double money;   // 定义浮点型变量,用于存放浮点数。

(二)字符串变量

  • 在C语言中,没有“字符串”这个数据类型,而是用字符数组来存放字符串,并提供了丰富的库函数来操作字符串。
char name[21];   // 定义一个可以存放20字符的字符串。
  • 注意几个细节:
    ①、如果要定义一个存放20个英文的字符串,数组的长度应该是20+1,原因以后再讨论。
    ②、中文的汉字和标点符号需要两个字符宽度来存放(GBK编码)。
    例如name[21]可以存放20个英文字符,或10个中文字符。
    ③、字符串不是C语言的基本数据类型,不能用“=”赋值,不能用“>”和“<”比较大小,不能用“+”拼接,不能用==和!=判断两个字符串是否相同,要用函数,具体方法我以后再介绍,现在了解就可以。

(三)、变量的命名

  • 变量名属于标识符,需要符合标识符的命名规范,具体如下:
    ①、变量名的第一个字符必须是字母或下划线,不能是数字和其它字符。
    ②、变量名中的字母是区分大小写的。比如a和A是不同的变量名,num和Num也是不同的变量名。
    ③、变量名绝对不可以是C语言的关键字。
    ④、关于变量的命名,为了便于理解,尽可能用英文单词或多个英文单词的简写,太短不能表达含义,太长了书写麻烦,如果英语不好,那就用中文拼英的第一个字母,例如身份证号码,cardid、userid都可以。

五、变量的初始化

  • 变量在定义后,操作系统为它分配了一块内存,但并不会把这块内存打扫干静,也就是说内存中可能有垃圾数据,建议在使用之间对其初始化(打扫干静)。

(一)、整数型、字符型、浮点型变量初始化

  • 对整数型、字符型、浮点型变量来说,初始化就是给它们赋0值。
  • 可以在定义的时候立即初始化。
int   ii=0;   // 定义整数型变量并初始化
char  cc=0;  // 定义字符型变量并初始化
double money=0;   // 定义浮点型变量并初始化
  • 也可以先定义,然后再初始化。
int   ii;  // 定义整数型变量
char  cc;  // 定义字符型变量
double money;   // 定义浮点型变量
ii=0;  // 初始化ii为0
cc=0;  // 初始化cc为0
money=0;  // 初始化money为0

(二)、字符串变量的初始化

  • 对字符串变量来说,初始化就是把内容清空,本质上也是赋0值。
char name[21];  // 定义一个可以存放20字符的字符串
memset(name,0,sizeof(name));   // 清空字符串name中的内容
  • 注意了,字符串变量的初始化与其它类型不同,要用memset函数

六、变量的赋值

  • 把常量的值赋给变量:
ii=10;  // 整数型变量赋值10
cc='A';   // 字符型变量赋值'A'
money=1500.87;   // 浮点型变量赋值1500.87
strcpy(name,"西施");   // 对字符串变量赋值"西施"
  • 把变量的值赋给变量:
int ii1=ii;   // 定义变量ii1并把ii的值赋给它
char cc1=cc;  // 定义变量cc1并把cc的值赋给它
double money1=money;  // 定义变量money1并把money的值赋给它
char name1[21];  // 定义字符串变量name1
strcpy(name1,name);   // 把name的值赋给name1
  • 注意了,字符串变量的赋值与其它类型不同,不能用=号,要用strcpy函数。
#include<stdio.h>
#include<string.h>
int main(){
  int ii = 0;
  char cc = 0;
  double dd = 0;
  char str[21];
  
  memset(str, 0,sizeof(str));

  ii = 10;
  cc = '0';
  dd = 123.55;
  strcpy(str,"www.freecplus.net");

  printf("%d\n",ii);
  printf("%c\n",cc);
  printf("%f\n",dd);
  printf("%s\n",str);
}
  • 运行结果:
10
0
123.550000
www.freecplus.net

七、多变量操作

(一)、多个变量的定义

  • 定义多个变量可以书写多条语句。
int ii;
int jj;
  • 相同类型变量的定义可以书写为一条语句,如下:
int ii,jj;

(二)、多个变量的赋值

  • 整数、字符和浮点型变量可以用一条语句对多个变量赋相同的值,如果要赋不同的值,只能用多条语句了。
ii=jj=10;   // 对ii和jj赋相同的值10
ii=jj=30;   // 对ii和jj赋相同的值30
ii=10;  // 对ii赋值10
jj=30;  // 对jj赋值30
  • 不论值是否相同,一条语句只能对一个字符串变量赋值。
strcpy(name,"西施");  // 对字符串变量name赋值"西施"
strcpy(name1,"西施");   // 对字符串变量name1赋值"西施"
strcpy(name,name1,"西施");   // 这是个天才的想法,但行不通,不符合strcpy函数的语法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值