当前位置: 首页 > article >正文

C语言基础2

一、变量的作用域

局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程。

int main() {

        {

               int a = 10;    

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

        }

        printf("a = %d\n", a);  //报错位置

        return 0;

}

这里会发生报错: “a”: 未声明的标识符。  可见a是局部变量其作用域仅在自己的括号内

int a = 10;

int main() {

        {

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

        }

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

        return 0;

}

全局变量的作用域是整个工程 

extern int a;
void test() {
        
        printf("a = %d\n", a);
}
int main() {
        test();
        {
               printf("a = %d\n", a);
        }
        printf("a = %d\n", a);
        return 0;
}

二、变量的周期

 局部变量的生命周期,进去作用域生命周期开始,出作用域生命周期结束

全局变量的生命周期,整个程序的生命周期

三、常量

1.字面常量

1.int main() {
        30;
        3.14;
        "abc";  //字符常量
        return 0;
}

2.const修饰的常变量

2.int main() {
        const int a = 10;  //c语言中,const修饰的a,本质是变量,但是不能直接修改,有常量的属性但是变量
        a = 20;
        printf("a = %d\n", a);
        return 0;
}
左值指定 const 对象 a不可修改

3.#define定义的标识符常量

3.#define MAX 100
#define STR abcd
int main() {
        printf("%d\n", MAX);
        int a = MAX;
        printf("%d\n", a);
         printf("%s\n", STR);
        return 0;
}

 

4.枚举常量

4.enum Color {
        RED,
        GREEN,
        BLUE
};      
enum Sex {
        MALE,
        FEMALE,
        SECRET
};
int main() {
        //三原色
        int num = 10;
        enum Color c = RED;
        return 0;
}

四、字符串

int main() {
        //char字符类型
        //'a' 单引号字符
        char ch = 'w'; 
        //"abcder" 双引号字符串
        return 0;
}
字符串以 \0 为结束标志
int main() {
               
        //char字符类型
        //'a' 单引号字符
        char ch = 'w'; 
        //"abcder" 双引号字符串
        char arr1[] = "abcdef";
        char arr2[] = { 'a','b','c','d','e','f' };
        return 0;
}

 运行结果:

char arr2[] = { 'a','b','c','d','e','f','\0'};

  造成这种的原因是因为字符串是以\0结尾,而双引号""会自动在末尾帮我们添加一个\0,在Visual Studio中我们可以通过 调试-窗口-监视来查看变量

strlen()  --求字符串的长度  头文件是string.h

#include <string.h>

int main() {

        int a = strlen("abc");

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

        return 0;

}

运行结果:3

在我们用printf()函数以字符串形式进行输出时,只有遇到'\0'才会停止输出!

当我们在使用{}字符串的定义的 方式时我们一定要记得加上字符串的结束标志,虽然我们有时候用不到,但这却是我们必须要做的,这也是一个合格的程序员必备的素养,当然,有的时候确实并不需要加上,在新手期间,建议还是加上。

五、转移字符

\n换行
 int main(){
        printf("hello worldn");
        return 0;      
}

 int main(){
        printf("hello world\n");
        return 0;      
}

 

\0 字符串的结尾

printf("abcd0fe");  输出结果为 abcd0fe

printf("abcd\0fe"); 输出结果为abcd

转义字符意义ASCI码值(十进制)
\a响铃007
\b退格008
\f换页012
\n换行010
\r回车013
\t水平制表009
\v垂直制表011
\\代表一个反斜杠\092
\'表示单引号039
\"表示双引号034
\?表示问号063
\0空字符000
\ddd1到3位八进制数代表的任意字符三位八进制
\xhh十六进制代表的任意字符十六进制

六、注释

C语言注释有两种

  • /*  注释内容  */

  • //注释内容


http://www.kler.cn/a/574023.html

相关文章:

  • 设计模式 + java8方法引用 实现任意表的过滤器
  • 多线程-CompletableFuture
  • AI推理革新:Dynasor-CoT如何提升复杂任务效率
  • 【AI学习从零至壹】Pytorch逻辑回归
  • FreeRTOS 任务管理与运行时间统计:API 解析与配置实践
  • 模块15.常用API
  • QT.....................................5
  • Redis 脚本:高效数据管理的利器
  • C++ list(双向链表)
  • 决策树(Decision Tree)基础知识
  • 网络安全可以从事什么工作?
  • 洛谷 P1480 A/B Problem(高精度详解)c++
  • 探索自适应学习在企业培训系统中的优势
  • 2025-03-06 学习记录--C/C++-C语言 函数参数传递的两种主要方法
  • NVIDIA Jetson Nano的国产替代,基于算能BM1684X+FPGA+AI算力盒子,支持deepseek边缘部署
  • 用Python分割并高效处理PDF大文件
  • Ubuntu 24.04 配置ODBC连接ORACLE 11G数据库
  • Java 大视界 -- 基于 Java 的大数据分布式任务调度系统设计与实现(117)
  • 力扣132. 分割回文串 II
  • js实现pdf文件路径预览和下载