c语言基础知识

本文介绍了C语言中的基本数据类型,包括char、int、float等,并涵盖了控制语句如if、for、while,以及存储类型如auto、extern。此外,还讨论了指针的概念,包括一级和二级指针,以及它们与数组的关系。文章还提到了函数的定义、声明和返回值,以及变量的存储区域和初始化方法。
摘要由CSDN通过智能技术生成

基本数据类型

关键字:系统预先定义好的,有特殊含义的,并且都是小写,不能重新定义

一共有32个:

数据类型:char、short、int、long、float、double、enum、union、struct、void

控制语句:if、else、for、do、while、switch、case、default、break、continue、goto

存储类型:auto、static、extern、register

const:只读

return:返回函数

signed:有符号数

unsigned:无符号数

sizeof:计算所占内存空间的大小:单位:字节

typedef:给一个已有的数据类型起别名

volatile: 防止编译器优化

转义字符

变量

auto:修饰局部变量,修饰的变量存储在栈区

extern:修饰全局变量,修饰的变量存储在静态区

static:既可以修饰局部变量,也可以修饰全局变量,修饰的变量存储在静态区

register:修饰局部变量,存储在寄存器中;

运算符

单算移关与,异或逻条赋

单目运算符、算术运算符、左移、右移、关系运算符、按位与、异或、按位或、逻辑运算符、

条件运算符、赋值

关系运算符:比较两者之间的关系,结果为(真1或者假0)

sizeof:计算所占内存空间的大小:单位:字节 sizeof(数据类型) sizeof(变量名)

输入输出

Scanf(“格式控制串”,地址表);

printf(“格式控制串”,输出表);

字符的输出和输出

getchar( );返回值:获取到的字符的ascii码值 不获取返回值,则相当于吃掉一个垃圾字符

putchar( ); 需要的参数:字符的ascii码值;

分支及循环语言

If分支结构

If(表达式)

{

语句1;

}

else

{

语句2;

}

循环结构

Switch循环

Switch(表达式)

{

Case 标号1:

语句1;

……

Case 标号n:

语句n;

    default:

语句n+1;

}

for循环

for(表达式1;表达式2;表达式3)

{

循环体;

}

冒泡排序

 

while语句

While(表达式)

{

循环体;

}

do..while语句

do

{

循环体;

}while(表达式)

数组 (特点:1、数据类型相同   2、地址连续)

一维数组:一组数据类型相同的元素组和在一起      Int  arr[5]

二维数组:(数组数组):一堆数组的元素组合在一起  Int   arr[4][3] ;

行数:一维整型数组的个数

列数:一维整型数组中元素的个数

字符数组:Char str[10] = “hello”;  字符数组的本质就是字符串;

字符串的处理函数(Strlen、 strcpy、strcat、strcmp  头文件:#include  <string.h>)

求字符串的长度Strlen(数组名)

字符串的拷贝函数Strcpy(数组1,数组2/字符串);

字符串的连接函数Strcat(数组1,数组2/字符串);

字符串的比较函数Strcmp(数组1/字符串1,数组2/字符串2)

初始化

全部初始化:Int arr[5] = {1,2,3,4,5};  Int a[2][3] = {{1,2,3},{4,5,6}};

部分初始化:Int arr[5] = {1,2,3};  Int  a[3][4] = {{1,2,3},{1},{1,2}};

函数

自定义函数

存储类型  数据类型  函数名(形式参数列表)

{

函数体;

}

返回值的数据类型(void)(数据类型省略不写,默认是int类型)

若没有返回值,void;返回值也可以省略,如果省略,默认int类型(返回有且只能有一个)

如果函数没有写在main函数之前,就需要声明;

声明:将函数头部直接复制粘贴至main函数之前,然后加上分号

声明的作用:帮助编译器做语法检查

指针

指针是一种数据类型,它是一种保存地址的数据类型    

一级指针:  Int  * p; 指针的数据类型:int *

二级指针:   Int * *pp;保存一级指针的地址

二级指针的数据类型:int **;

指针和一维数组的关系

注意:!!在使用指针变量的移动时:一定要注意:指针此时指向了哪里

指针二维数组的关系

 

 

数组指针指向数组的指针(保存数组的地址)

Int (*p)[3];

 数组指针一般不去操作一维数组。因为p+1,移动一个数组,就会越界,因此数组指针,一般用数组指针去操作二维数组!

指针数组   元素为指针的数组

Int * arr[3];

指针的赋值相当于改变指针的指向(指针赋值时要注意 指针指向的数据类型必须相同)

在所有的32os操作系统中,所有的指针都占4个字节 64位中站8个字节

空指针:在所有的32os操作系统中,所有的指针都占4个字节

野指针:野指针:不知道指向哪里的指针局部变量,没有初始化,随机值

局部指针变量,如果没有初始化,就是野指针

指针指向的数据类型,去掉的一个*和变量名,

指针的数据类型,去掉变量名就是数据类型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值