C语言简单知识一

#include 
 
int main()
{
    /* 我的第一个 C 程序 */
    printf("Hello, World! \n");
 
    return 0;
}

 main() 函数,代码从 main() 函数开始执行

/* ... */ 用于注释说明

printf() 用于格式化输出到屏幕

 #include 是一个预处理命令,用来引入头文件

return 0; 语句用于表示退出程序

C 编译器 c语言属于编译型语言,也就是要把源代码,转换成计算机所理解的语言。

令牌可以是关键字标识符常量字符串值,或者是一个符号。分号是语句结束符。

C 标识符是用来标识变量函数,或任何其他用户自定义项目的名称;

只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。

基础数据类型:整数类型和浮点类型。

void 表明没有可用的值。

派生类型:指针类型、数组类型、结构类型、共用体类型和函数类型。

推荐大家可以去菜鸟教程学习:菜鸟教程

类型大小:

#include 
int main()
{
   printf("int 存储大小 : %lu \n", sizeof(int)); // %lu 为 32 位无符号整数
   
   return 0;
}
 #include 
#include 
 
int main()
{
   printf("float 存储最大字节数 : %lu \n", sizeof(float));
   printf("float 最小值: %E\n", FLT_MIN );
   printf("float 最大值: %E\n", FLT_MAX );  //%E 为以指数形式输出单、双精度实数
   printf("精度值: %d\n", FLT_DIG );
   
   return 0;
} 

变量:是一个盒子;变量的名称可以由字母、数字和下划线字符组成。

extern int i; //声明,不是定义
int i; //声明,也是定义

变量的声明有两种情况:

  • 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
  • 2、另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。

C 中有两种类型的表达式

  1. 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
  2. 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。

常量

0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制

\a 警报铃声
\b 退格键
\f 换页符
\n 换行符
\r 回车
\t 水平制表符
\v 垂直制表符

#include 
 
int main()
{
   printf("Hello\rWorld\n");
   printf("hello\tworld\n");
   printf("黑马程序员\n");
   return 0;
}

定义常量的方式:

  1. 使用 #define 预处理器。
  2. 使用 const 关键字。
#include 
#define pi 3.14 //定义pi常量
 int yuan(int r){ //定义函数
    int ch;
    ch=2*pi*r; //周长
    return ch;
 }
 int cft(){
    const int length=5; //长
    const int width=3;// 宽
    int s;
    s=length*width; //面积
    return s;
 }
int main()
{  int re;
   int result;
   re=yuan(3); 
   res=cft();
   printf("%d\n",re);
   printf("%d",result);
   return 0;
}

存储类

auto 存储类是所有局部变量默认的存储类。

register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个字),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。

寄存器只用于需要快速访问的变量。

static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。

全局声明的一个 static 变量或方法可以被任何函数或方法调用,只要这些方法出现在跟 static 变量或方法同一个文件中。

extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 extern 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。通常用于当有两个或多个文件共享相同的全局变量或函数的时候。

运算符

算术运算符

% 取模运算符,整除后的余数 B % A 将得到 0
++ 自增运算符,整数值增加 1 A++ 将得到 11
-- 自减运算符,整数值减少 1 A-- 将得到 9

关系

== 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 为假。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。

逻辑

与&&,或||,非!

位运算符

位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值。

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

赋值

+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2

其他

sizeof() 返回变量的大小 sizeof(a) 将返回 4,其中 a 是整数。
& 返回变量的地址 &a; 将给出变量的实际地址。
* 指向一个变量 *a; 将指向一个变量。
? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y

你可能感兴趣的:(c语言编程,c语言,开发语言)