C语言学习(1)一、二章

本文详细介绍了C语言的学习内容,包括第一个C程序的编写,数据类型的关键字,如char、int、float等,以及存储相关的关键字如register、static、const。还讲解了控制语句,如if、for、while和switch,以及运算符的使用,如算术运算符、关系运算符、逻辑运算符和位运算符。文章还涵盖了数据类型的转换、运算符优先级和结合性,以及循环控制语句的使用技巧。
摘要由CSDN通过智能技术生成

第一章 第一个C程序

经典的hello world。需要在调用库函数之前对库函数进行声明,标准C库用<>符号包含调用的头文件。main函数返回int整形,一个程序中有且只有一个main函数,是程序的入口。函数开始结尾要有大括号,每条语句用分号结尾。

写注释的方法://单行注释 注释双斜杠到行末;/* */多行注释

# include<stdio.h>

int main()

{

printf("hello world\n");

return 0;

}

第二章 数据类型及语句

2.1关键字

2.1.1数据类型相关的关键字

用于定义变量或者类型

1、char:字符型变量

定义字符型变量,占1个字节,只能定义一个字符

char ch1 = 'b';//正确

char ch2 = '1';//正确

char ch3 = '1234';//错误

字符存放的是ASCII码的值,即用1的ASCII码给ch1赋值

int main()

{

char ch;

ch = 'a';

printf("ch = %c\n", ch);

return 0;

}

2、short:短整型

short int a = 11;

一般short和int配合使用,范围是 -32768 --- 32767

3、int:整型变量

32位系统下占4个字节,16位占2字节,范围是 -20亿 --- 20亿。

int a =44;

4、long:长整型

在32位系统占4个字节

long int a = 144; 

5、float:单浮点型实数

带小数点,占4个字节。f修饰3.8是float类型的实数,不加默认为double类型。

float b = 3.8f;   

6、double:双浮点型实数

带小数点,占8个字节,精度更高

double b = 3.8;

7、struct:结构体类型,

8、union:联合体(共用体)

9、enum:定义枚举类型

10、signed:有符号数

在定义字符型char、整形short int long时用signed修饰,表示数据是有符号的,保存正负0,不写默认是有符号

signed int b = -6;

11、unsigned:无符号数

在定义字符型char、整形short int long时用signed修饰,表示数据是无符号的,只能保存正数和0.

unsigned int a = 100;

unsigned int a = -100;  //错误

12、void:空类型

不能定义变量,修饰函数的参数和返回值,代表函数没有参数或没有返回值

void fun(void)

{

}

代表没有参数,没有返回值

int main()

{

char a;

short int b;

int c;

long int d;

float e = 3.8f;

double f = 5.6;

printf("sizeof(a) = %d\n", sizeof(a));

printf("sizeof(b) = %d\n", sizeof(b));

printf("sizeof(c) = %d\n", sizeof(c));

printf("sizeof(d) = %d\n", sizeof(d));

printf("sizeof(e) = %d\n", sizeof(e));

printf("sizeof(f) = %d\n", sizeof(f));

return 0;


//sizeof(a) = 1

//sizeof(b) = 2

//sizeof(c) = 4 说明vs编译环境是32位

//sizeof(d) = 4

//sizeof(e) = 4

//sizeof(f) = 8

}

2.1.2、存储相关关键字

1、register:寄存器

用register修饰的变量是寄存器变量。一般定义的变量的存储空间会被分配在内存中,而用register修饰变量,编译时会告诉编译器尽量将其存储空间分配在寄存器中,有可能存放入也有可能没有存放入,只有内存中的变量才有地址,故不能用取地址的方式读取register修饰的变量。

(1)定义的变量不一定是存放在了寄存器中;

(2)CPU取数据的时候在寄存器中读取比在内存中快;

(3)不能定义寄存器数组;

(4)register只能修饰字符型char和整形short、int、long,不能修饰浮点型float、double;

register char ch;

register short int b;

register int c;

register float d; //错误

(5)只有内存中的变量才有地址,故不能用取地址的方式读取register修饰的变量。

register int a;

int* p;

p = &a; //错误,可能a没有地址

2、static:静态

static可以修饰全局变量、局部变量、函数。

3、const:只读变量

不能修改,只能读取。

const int a = 101;//定义了一个只读的变量a,a=101,在定义之后不能再修改了

a = 101;//错误,不能给只读变量赋值

4、auto:自动类型

auto int a 与 int a 等价,不常用。

5、extern:外部函数或外部变量声明

一般用于函数和全局变量的声明,常用在头文件中。

2.1.3 控制语句相关的关键字

1、if

2、else

3、break

4、continue

5、for

6、while

7、do

8、switch.....case.....

9、goto

10、default

2.1.4 其他关键字

1、sizeof

用来测变量、数组、指针等占用存储空间的大小(占用内存的字节数)

int a = 10;

in num;

num = sizeof(a); 

测量a在内存中占用的字节数,即int类型占用的字节数

2、typedef

给一个已有的类型名如int、float等重新起个名字,比如把long int叫成abcd,不能创造一个新的类型

定义方式::typedef + 需要替代的变量名 + 新变量名

例如:typedef unsigned short int U16; //即将unsigned short int 重命名为U16

//使用 INT 代替 short int 作为类型名称定义变量

//short int a;

//short int INT16;

typedef short int INT16;

int main()

{

short int b = 100;

INT16 c = 111;

printf("b = %d\n", b);

printf("c = %d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值