关于c中数据类型、局部变量与全局变量,常量,字符串等知识总结

    科技2022-08-21  110

    目录

    1.1运行hello world 程序

    2. 1数据类型

    2.1.1用代码来求得各类型的大小   

    2.1.2局部变量与全局变量

    3.1加法器

    3.2作用域与周期

    4.1C语言中的常量

    4.1.1字面常量

    4.1.2定义宏

    4.1.3枚举

    4.1.4const修饰的常变量

    5.1字符串


    1.1运行hello world 程序

    这个基础的程序是每一个编程人必须掌握的,在这里我用的环境是vs2013。用vs2013运行程序时,结果会出现闪现的现象,所以注释部分的两句就是为了让程序暂停一下,是我们看到结果。

    #include<stdio.h>//必须写 #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 int main() { printf("Hello World!\n"); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    2. 1数据类型

    2.1.1用代码来求得各类型的大小   

    注意:sizeof():关键字是用来进行类型大小计算的;  

              不同类型所占用的字节大小是不同的。

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 int main() { //sizeof():关键字是用来进行类型大小计算的 //不同类型所占用的字节大小是不同的 printf("char:%d\n",sizeof(char)); printf("short:%d\n",sizeof(short )); printf("int:%d\n",sizeof(int)); printf("long:%d\n",sizeof(long)); printf("long long:%d\n",sizeof(long long)); printf("float:%d\n",sizeof(float)); printf("double:%d\n",sizeof(double)); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    运行结果: 

    2.1.2局部变量与全局变量

     

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 int g = 2019; int main() { int g = 2020; g = 2021; printf("value:%d\n", g); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    运行结果为:2021;

     注意:不建议将全局变量和局部变量设置同名的!!!

    这里我们也要提到一个就近原则,那就是当局部变量和全局变量同名时,局部变量优先使用。

    3.1加法器

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 int main() { int num1 = 0; int num2 = 0; printf("请输入两个数据:"); scanf("%d %d", &num1,&num2); int result = num1 + num2; printf("%d+%d=%d\n", num1, num2, result); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    在这里提一个解决4996报错的方法:#pragma warning (disable:4996);

    3.2作用域与周期

    代码举例:

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 void show() { int a = 10; printf("show run!\n"); } int main() { show(); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    这里的a被调用时就开始它的作用了,但结束后它又被释放了,说明它的生命周期结束了。

    4.1C语言中的常量

    4.1.1字面常量

    4.1.2定义宏

    关键字:define

    宏定义的作用:见到名字就知道其意思,便于维护。

    代码举例:

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 #define RED 1//宏定义 //#define MAX 100//宏定义 int main() { /*int a = 1; int b = 1; int c = 1; int d = 1;*/ //这样写有个不好处就是如果大量数据需要修改时就直接修改不了,得一个一个改,很麻烦 /*int a = RED; int b = RED; int c = RED; int d = RED;*/ //为了解决上面一步提出的问题,我们直接这样写比较好,这样后面可以直接从宏定义那里改 //int a = 100;将这句话换为int a =MAX更好 //MAX=200;如果将MAX宏定义为100,那么这里的MAX就不能这样写,会报错; //int a = MAX; //printf("MAX:%d\n", MAX); //printf("a:%d\n", a); /*1; 'a'; "hello world";*/ //这三条语句可以编译通过,但没有任何意义,这些叫做字面值 system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

     

    4.1.3枚举

    关键字:enum{ }。

    代码示例:

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 enum{ RED=100, YELLOW, BLUE, BLACK, }; int main() { int a = RED; int b = YELLOW; printf("a:%d\n", a); printf("b:%d\n", b); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

    4.1.4const修饰的常变量

    用const修饰变量定义,被修饰的变量不能直接被修改。 

    代码示例:

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 int main() { /*int a = 100;//初始化 a = 200;//赋值 printf("%d\n", a);*/ //此时程序运行出来的结果是200; const int a = 100;//初始化 a = 200;//赋值 printf("%d\n", a); //此时程序会报错,提示a不能被负200,因为与之前定义的100不等 system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

     

    5.1字符串

    c语言中字符串用“ ”来表示,默认以‘\0'结尾,所以它的长度会比肉眼看到的真实值加1。

     代码示例:

    #include<stdio.h> #include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果 #pragma warning(disable:4996);//解决4996报错的方法 int main() { /*"hello"; "x"; "";*/ //这三条语句虽然都能编译通过,但没有任何意义,被称为字符串常量或不可改的字符串; /*printf("%d\n", sizeof("abcd")); printf("%d\n", sizeof("a")); printf("%d\n", sizeof(""));*/ //这三条语句求得的结果会比其看到的真实值加一,因为c中字符串是以‘\0'结尾的; /*char str[16] = "hello";//以数组形式保存字符串。 str[6] = 'x'; printf("%s\n,str);*/ char str1[16] = "bit"; char str2[16] = { 'b', 'i', 't' }; char str3[16] = { 'b', 'i', 't','\0' }; printf("%s\n", str1); printf("%s\n", str2);//可能出现乱码 printf("%s\n", str3); system("pause");//仅仅是为了让程序暂停一下,让我们看到结果 return 0; }

     

     

     

     

    Processed: 0.028, SQL: 9