C语言概述(一)

前言

一:C语言字节数
二:语言的编译链过程
三:C语言–函数式编程
四:作用域(可见性)
五:生存期/生命期
六:数组
七:运算符


一、C语言字节

| 数据类型 | 字节数 |

| char | 1 |
| short | 2 |
| int | 4 |
| long int | 4 |
| long long | 8 |
| float | 4 |
| double | 8 |
| long double | 8 ; dev中12 或16 |

二、语言的编译链过程

在这里插入图片描述

三、C语言-函数式编程

C语言—函数式编程:把一个大的问题分解为多个小的问题。
函数的构成:
返回类型 函数名 (形参列表)
{
函数主体
}

函数的命名------要具有代表性
函数声明中,形参类型不可省略;编写时,一定要注意检查形参值
在这里插入图片描述
俩个凡是:
(1)凡是在函数外定义的变量都存储在数据区
(2)凡是在函数内定义的变量都存储在栈区
程序在执行的时候,计算机会分配相应的 CPU 和 内存

四、作用域(可见性)

作用域(可见性):指标识符能被使用的范围;只有在作用域内标识符才可以被使用-------此阶段只针对编译和链接过程

作用域又分为全局作用域,局部作用域,块内作用域(必然包含在某个函数当中,且只在块内有效。)等三种

函数中定义的标识符:包括形参和函数体中定义的局部变量

文件作用域也称全局作用域,定义在所有函数之外的标识符

注意:经过编译链接过程之后再讨论执行

int main()
{
   int x = g_max;
   { 
     int b = x;
   }
   return 0;
}     

int x = g_max;------为全局变量
全局变量是指从当前位置起向下有效
局部变量仅在函数体内可见

int g_max = 10; 
int main()
{
  int x = 10;
  int g_max = 0;
  int a = g_max;
  return 0;
}

当全局变量 g_max = 10 与局部变量 g_max = 0 冲突时,局部变量优先,由当前位置 ( int a = g_max ) 向上选择,选取最近变量

int g_max = 10; 
int main()
{
  int x = 10;
  int g_max = 0;
  int a = ::g_max;
  return 0;
}

注意:若想隐藏局部变量使用全局变量,则可在变量名前加俩个问号

五、生存期/生命期

生存期/生命期-----此阶段针对程序的执行过程

概念:指标识符从程序开始运行时被创建,具有存储空间到程序运行结束时消亡的时间段

(1)局部变量生存期:函数被调用,分配存储空间,到函数执行结束,存储空间释放----存储在栈区(.stack)

(2)全局变量生存期:从程序运行前开始,到执行后结束----存储在数据区 (.data)

六、数组

int main ()
{
  int ar [] = {12,23,34,45,56,67,78,89.90.100};
  for (int i = 0; i < 10; ++i)
  {
    printf("%d\n",ar[i]);
   }
   return 0;
}   

数组的描述:定义一个数组,数组含有十个元素,元素的类型时整型,由此可见,数组由类型和大小这俩部分组成

定义数组时,[10] 必须是整型常量

常量
#define ARSIZE 10----宏常量 (没有类型)
const int ar_size = 10----常变量
enum { Ar_size = 10 }----枚举常量
1,2,3,4…----字面常量

size of (int);------计算类型所占字节个数
size of ( a );------计算变量所占字节个数

七、运算符

( ,) 逗号运算符优先级最低
运算符举例:
(1)*= , +=

int main ()
{
  int a = 3 , b = 4 , c = 5 ;
  a* = b + c;
  // a = a * b + c ; //-----(1)
  // a = a * (b + c) ; //-----(2)
  printf (" %d",a );
  return 0 ;
}

加法优先级 > 乘等优先级 所以上式 (1)错误,(2)正确

(2)三目运算符

int Max_Int (int a,int b)
  {
    return ( a > b)? a:b;
  }

C语言只有一个多目运算符-----三目运算符

(3)a++,++a
在这里插入图片描述

mov—移动
add—增加

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值