C语言简单知识一

本文详细介绍了C语言的基本语法,包括main()函数、注释、printf()函数、预处理命令#include、变量声明与类型、表达式、运算符、存储类以及常量的使用。还探讨了C语言的数据类型、指针、数组、结构体和函数等派生类型,并提供了实例代码展示。此外,文章提到了变量的左值与右值、常量的表示方式以及位运算符的应用。
摘要由CSDN通过智能技术生成
#include <stdio.h>
 
int main()
{
    /* 我的第一个 C 程序 */
    printf("Hello, World! \n");
 
    return 0;
}

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

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

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

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

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

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

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

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

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

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

void 表明没有可用的值。

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

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

类型大小:

#include <stdio.h>
int main()
{
   printf("int 存储大小 : %lu \n", sizeof(int)); // %lu 为 32 位无符号整数
   
   return 0;
}
 #include <stdio.h>
#include <float.h>
 
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 <stdio.h>
 
int main()
{
   printf("Hello\rWorld\n");
   printf("hello\tworld\n");
   printf("黑马程序员\n");
   return 0;
}

定义常量的方式:

  1. 使用 #define 预处理器。
  2. 使用 const 关键字。
#include <stdio.h>
#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
++自增运算符,整数值增加 1A++ 将得到 11
--自减运算符,整数值减少 1A-- 将得到 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值