首页 > 其他分享 >初识C语言3

初识C语言3

时间:2023-02-04 17:01:36浏览次数:33  
标签:10 关键字 int 32 C语言 -- 初识 static

     今天学习了原码补码反码之间的关系、昨天没学完的操作符、关键字、如何产生地址。

     正数是原码反码补码三码统一,负数在计算机以补码的形式存储,而打印出来的是该数的原码。一个数的原码的符号位不变,其他位按位取反得到反码,反码再加一得到补码。这就是三者之间的关系。

++、--的用法:

eg:int a=10;

int b=--a; //先--,再赋值给a;输出b=9,a=9

int b=a--;//先赋值,再--;输出b=10,a=9   ++与--的用法相似。

强制类型转换:int a=(int)3.14;//强制将double类型转换成int类型。

关系操作符(比较大小):>=、<=、!=、==。

逻辑操作符:&&(逻辑与-并且)、||(逻辑或-一个为真则为真)

在C语言中0表示假一切非0表示真。

条件操作符:exp1?exp2:exp3(若表达式1为真则表达式2作为整个式子的结果,若表达式为1为假则表达式2作为整个式子的结果)eg:a>b?a:b 。

关键字:auto(局部变量前都有通常省略)、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register(寄存器关键字)、return、short、signed、sizeof、static、struct(结构体关键字)、switch、typedef、union(联合体/共用体)、unsigned、void(空、无)、volatile、while。关键字不可以与变量名冲突。

计算机中存储数据:寄存器、高速缓存、内存、硬盘。从左往右访问速度越来越慢,造价也越来越便宜。

部分关键字的解释:

eg:register int a=10;//建议把a定义成寄存器变量,因为可能会频繁使用。

int a=10;等价于 signed int a=10;   unsigned int num=0;//无符号数num里面存放正负数均可。

typedef:类型定义(类型重定义)

int main()

{

typedef unsigned int u_int ;//将unsigned int 重名名为u_int

unsigned int num=20;

u_int num2=20;//这一句与上一句意义一样

return 0;

}

static:1、当static修饰局部变量时,局部变量的周期变长了。2、当static修饰全局变量时,改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就没办法再使用了。3、static修饰函数改变了函数的链接属性,每个函数都具有外部链接属性,但被static修饰之后变成了内部链接属性。

extern:声明外部符号的

test.c文件   int g_val=100;

test2.c文件:

int main()

{

extern int g_val;//声明外部变量g_val

printf("%d\n",g_val);

return 0;

}

#define定义标识符常量   eg:#define MAX 100

#define定义宏—带参数

#define MAX(X,Y) (X>Y?X:Y)

int main()

{

int a=10;

int b=20;

int max=MAX(a,b);//等价于max=(a>b?a:b)

}

如何产生地址:操作系统有32位的有64位的,32位代表有32根地址线/数据线,通正负电,产生电信号正电信号用1表示负的用0表示。2的32次方个二进制序列,也就是产生了2的32个次方个地址编号,在内存中一个空间占一个字节而不是1bit。

从而产生指针:指针里面存地址若是32个二进制则是4个字节,64位的则是8个字节。

int main()

{

int a=10;

int *p=&a;//取a的地址赋值给p *—解引用操作符

printf("%p\n",&a);

printf("%p\n",p);

return 0;

}//两个printf输出结果一样均是a的地址

标签:10,关键字,int,32,C语言,--,初识,static
From: https://blog.51cto.com/u_15473153/6037200

相关文章