波奇学c:想自学c?不能错过的c基础知识

目录

二进制的产生

c语言的变量

注意

C语言的数据类型

注意

C语言中的常量

*字符串常量

*枚举常量

注意

转义字符

常见转义字符

*8进制转义(16进制同理)

计算含转义字符的字符串的长度

注意

注释

数据存储

关键字和函数

typedef 重命名

static 静态

改变局部变量储存位置

断开外部链接属性

pritnf函数

指针


二进制的产生

机器接收到正电位用1表示,接收到负电位用0表示,只有两种电位由此产生2进制

32位机器表示产生32个电位,64位同理。

c语言的变量

*生命周期指变量存在的时期,作用域指变量起作用的范围

int a=0;//全局变量
int main()
{
int a=1;//局部变量
printf("%d",a);//结果为1
}

注意

1.局部变量和全局变量名字相同时:局部优先。
2.如果跨源文件调用全局变量使用关键字extern 进行外部声明。

3.静态区变量默认初始化为0,局部表量不初始化,默认随机值。

extern int a;

3.出了函数,局部变量被销毁,全局变量还存在。

C语言的数据类型

注意

1. 字节数不同机器略有不同但一定遵循long>=int>=short

2.机器规定char恒为为1字节(byte)

3.内存换算:1tb=1024mb=1024^2kb=1024^3byte=1024^4bit

4.使用不同的数据类型为了节省内存消耗

C语言中的常量

*字符串常量

"abcdefg"

字符串末尾含有"\0"作为结束标志,不显示但占据空间。

求字符长度用函数strlen

int sz=strlen("abcdefg");//结果不包括'\0'

 结果为7不包括'\0'

*枚举常量

red pink yellow相当于int 不能修改,在未赋值下相当于0 ,1,2

enum colur
{ red,
  pink,
  yellow
};
int main()
{	int b=red;//b=0;
	return 0;
} 

注意

1.常量和变量对应,常量不能更改,可用于数组定义等

2.#define 定义的常量 可用于数组,不可修改,全局使用

3.const 修饰的常变量不是常量

不能被修改,但本质上还是变量,不能用于数组元素个数

const int a=0;//不可修改但不是常量
int arr[a]=0;//报错

转义字符

运用\号使得符号变成新的含义、

常见转义字符

*8进制转义(16进制同理)

1.在字符串中只有8和16进制转义,没有10进制转义

printf("12312323233\n");//结果:12312323233
printf("1233 \123 232 \x53 \n");//1233 S 232 S 

123变为8进制数字(即10进制的83)经转义后得到对应ascii的新符号S。

2.8进制数字打印字符有两种方式:''+\ 和直接用%c格式打印8进制数字,在字符串中用第一种。

printf("%c\n", '\123');//S
printf("%c\n", 0123);//S 数字前加0表示8进制数字

计算含转义字符的字符串的长度

转义字符一整个算1个字符,'\0'不算长度

如8进制一般算3位数,遇到有大于等于8的数则数位减少

strlen("1233\123232\x53\n");
//"1233 \123 232 \x53 \n" 10个字符

注意

''和\同时出现,转义的结果是因此字符必须带上''

反转义

把某些特殊字符当成普通字符打印如' \等,取消转义效果

prinf("\\n");//结果为\n

注释

//单行注释

/* 多

行

注

释*/

数据存储

*cpu处理数据越来越快,读写速度更快
*寄存器使用

register int a=0;//建议编译器把变量a放在寄存器中

关键字和函数

typedef 重命名

typedef unsigned int uint

uint age=3//等价 unsigned int age=3

static 静态

改变局部变量储存位置


 

void fun()
{
 static int a=0;
 a++;
 }//a不会再被定义一次,在原有的值上递增。

断开外部链接属性

修饰全局变量和函数,使得全局变量和函数不能跨源文件使用

全局变量有外部链接属性,通过extern声明能跨源文件使用,用static修饰则外部链接属性消失(函数同理)

pritnf函数

打印格式:

%d:十进制        %lf:双精度        %f:单精度浮点型

%c:字符        %s:字符串

%p:指针   

#include<stdio.h>//头文件
 printf("%d",10);

指针

 

储存数据的变量的地址。

内存是存储空间,程序运行时会载入内存,有数据要储存就会申请空间,内存划分成内存单元,并编号,相当于地址。(一个内存单元一个字节)。

32位机器(x86)上指针变量大小4个字节,64位机器8个字节(x64)。

求指针(地址)

int*a=&b//求出b地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值