初始C语言(3)

1、操作符--单目操作符,只有一个数的操作符。

! 逻辑反操作,C语言中0就是假,非0为真。

sizeof 计算操作数的类型长度,以字节为单位,()里可以是变量名,或者变量类型。

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

~ 对一个数的二进制按位取反,01010101--->10101010

++ 前置++,先++,后使用;后置++,先使用,后++

先a=a+1,再把b=a;

先把b=a,再a=a+1;

--同++的使用;

()  强制类型转换,将后面的数强制转换类型

int a=(int )3.14;

条件(三目)操作符 :exp1?exp2:exp3-----表达式1为真,则执行表达式2,若为假,则执行表达式3。

,  逗号表达式,从左向右依次计算,整个表达式的结果是最后一个表达式的结果,每个算式都有效,且值已经改变。

int a=1;
int b=2;
int c=3;
int d=(a=a+b,c=c+a,b=b-2);

 [ ]下标引用操作符

int arr1[]={1,2,3,4,5};
printf("%d\n",arr[4]);

( )函数调用操作符。

2、常见关键字

auto  自动变量,通常省略,例主函数中定义一个变量,定义了自动创建,出了函数自动销毁。

auto int a=10;

 break--跳出循环,常在switch  for  while dowhile语句

case   char  short int long float double signed (有符号的)  unsigned (无符号的)    

enum struct union(联合体)自定义类型

extern 声明外部符号                         register--寄存器

goto 语句      return --返回,使用在函数中。  sizeof   stcstic  typedef--类型重定义      void--无,空

volatile ;        关键字不可用于变量名,有特殊意义。

(1)、typedef  类型重定义,使用格式如下

typedef unsigned int uint;
int main()
{
uint num2=0;
unsigned int num1=0;
return 0;
}\\num1与num2定义方式不同,但类型相同。

(2)、register  寄存器关键字     寄存器是计算机中的一种存储器,是集成到CPU上的,可以较快读取数据。  int mun=10;存储在内存中,若需要频繁调用,改到寄存器中,建议定义为register int num=10; 起建议作用,建议将num的值放在寄存器中,最终是由编译器决定的。寄存器变量,不能取地址,因为取地址只有在内存上才有地址,寄存器是集成在CPU上的。

(3)、stastic-----静态的

  修饰局部变量-称为静态局部变量,使函数内部创建的局部变量一直存在,每次调用函数时,使用的是上一次的值。内存可分为栈区,堆区,静态区。局部变量,函数的形式参数(临时的变量)都存在栈区中;动态内存分配,malloc,calloc等分布在堆区;静态区放静态变量、全局变量。

 stastic 修饰局部变量的时候,改变了局部变量的存储类型:本来一个局部变量是存储在栈区的,被stastic修饰的局部变量是存储在静态区的。存储在静态区的变量出了它的作用域变量也不销毁,生命周期较长。stastic修饰的局部变量的生命周期和程序的生命周期一样。作用域不变,不可以在其对应的函数外部使用

修饰全局变量---改变了全局变量的外部属性:本来一个全局变量是具有外部链接属性的(定义的全局变量可在另外的.c文件中使用,需要用extern 声明外部符号。),但被stastic修饰之后就变成了内部链接属性。这时stastic修饰的全局变量只能在本源文件(.c)中使用,其他文件无法再使用到。

修饰函数---和修饰全局变量是类似的,一个函数本来也是具有外部链接属性的(同样用extern来声明外部链接属性),但当被stastic修饰的时候,外部链接属性就变成了内部链接属性,这个函数就只能本源文件内部使用,其他文件不能再使用了。

vs使用小技巧,从工具-->选项--->常规(可修改主题颜色)、下滑到字体颜色,可自定义编辑框的颜色,字体。

3、#define定义常量和宏

//#define 定义常量
#define NUM 100   
#define STR "hehe"
int main()
{
printf("%d\n",NUM);//被编译器处理后得到 printf("%d\n",100);
printf("%d\n",STR);//被编译器处理后得到 printf("%d\n","hehe");
return 0;

}
//#define 定义宏  宏是 有参数的
#define ADD(x,y)((x)+(y))
int main()
{
int a=10;
int b=20;
int sum=ADD(a,b);//int sum=(a+b);
printf("%d\n",sum);
return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值