C语言 printf() 与格式控制符-c-yu-yan-ge-shi-kong-zhi-fu.md
格式控制符|格式控制符 |
说明 || — | — ||%c |输出一个单一的字符 ||%hd、%d、%ld |以十进制、有符号的形式输出 short、int、long 类型的整数 ||%hu、%u、%lu |以十进制、无符号的形式输出 short、int、long 类型的整数 ||%ho、%o、%lo |以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 ||%#ho、%#o、%#lo |以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 ||%hx、%x、%lx
%hX、%X、%lX |以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 ||%#hx、%#x、%#lx
%#hX、%#X、%#lX |以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 ||%f、%lf |以十 ...
C语言 printf() 与格式控制符-c-yu-yan-ge-shi-kong-zhi-fu.md
格式控制符|格式控制符 |
说明 || — | — ||%c |输出一个单一的字符 ||%hd、%d、%ld |以十进制、有符号的形式输出 short、int、long 类型的整数 ||%hu、%u、%lu |以十进制、无符号的形式输出 short、int、long 类型的整数 ||%ho、%o、%lo |以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 ||%#ho、%#o、%#lo |以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 ||%hx、%x、%lx
%hX、%X、%lX |以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 ||%#hx、%#x、%#lx
%#hX、%#X、%#lX |以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 ||%f、%lf |以十 ...
C语言 变量的存储类别(auto、static、register)-c语言变量的存储类别和生存期autostaticregister.md
我们知道,变量是有数据类型的,通过数据类型我们知道这个变量将在内存中占用多少内存,计算机如何对该数据类型进行操作。
除此之外,变量还有存储类别,
存储类别就是是变量在内存中的存储区域,它可以使常量区、全局数据区或栈区。
常量区和全局数据区的内存在程序启动时就已经由操作系统分配好,占用的空间固定,程序运行期间不再改变,程序运行结束后才由操作系统释放;它可以存放全局变量、静态变量、一般常量和字符串常量。
栈区的内存在程序运行期间由系统根据需要来分配(使用到变量才分配内存;如果定义了变量但没有执行到该代码,也不会分配内存),占用的空间实时改变,使用完毕后立即释放,不必等到程序运行结束;它可以存放局部变量、函数参数等。
我们可以使用关键字来控制变量的存储类别(存储区域),共有4个关键字,如下:
auto(自动的)
static(静态的)
register(寄存器的)
extern(外部的)
autoauto是“自动”的意思,在C语言中,亦可以认为是“默认”之意,也就是说,定义变量时使不使用auto修饰变量都是一样的,所有变量默认都是使用auto修饰,也因此我们一般很少使用。
int i=1 ...
C语言 变量的存储类别(auto、static、register)
我们知道,变量是有数据类型的,通过数据类型我们知道这个变量将在内存中占用多少内存,计算机如何对该数据类型进行操作。
除此之外,变量还有存储类别,
存储类别就是是变量在内存中的存储区域,它可以使常量区、全局数据区或栈区。
常量区和全局数据区的内存在程序启动时就已经由操作系统分配好,占用的空间固定,程序运行期间不再改变,程序运行结束后才由操作系统释放;它可以存放全局变量、静态变量、一般常量和字符串常量。
栈区的内存在程序运行期间由系统根据需要来分配(使用到变量才分配内存;如果定义了变量但没有执行到该代码,也不会分配内存),占用的空间实时改变,使用完毕后立即释放,不必等到程序运行结束;它可以存放局部变量、函数参数等。
我们可以使用关键字来控制变量的存储类别(存储区域),共有4个关键字,如下:
auto(自动的)
static(静态的)
register(寄存器的)
extern(外部的)
autoauto是“自动”的意思,在C语言中,亦可以认为是“默认”之意,也就是说,定义变量时使不使用auto修饰变量都是一样的,所有变量默认都是使用auto修饰,也因此我们一般很少使用。
int i=1 ...
C语言 scanf() 格式控制符汇总-c-yu-yan-scanfge-shi-kong-zhi-fu-hui-zong.md
|格式控制符 |
说明 || — | — ||%c |读取一个单一的字符 ||%hd、%d、%ld |读取一个十进制整数,并分别赋值给 short、int、long 类型 ||%ho、%o、%lo |读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 ||%hx、%x、%lx |读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 ||%hu、%u、%lu |读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型 ||%f、%lf |读取一个十进制形式的小数,并分别赋值给 float、double 类型 ||%e、%le |读取一个指数形式的小数,并分别赋值给 float、double 类型 ||%g、%lg |既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型 ||%s |读取一个字符串(以空白符为结束) |
scanf() 控制字符串的完整写法为:
1%{*} & ...
C语言 scanf() 格式控制符汇总-c-yu-yan-scanfge-shi-kong-zhi-fu-hui-zong.md
|格式控制符 |
说明 || — | — ||%c |读取一个单一的字符 ||%hd、%d、%ld |读取一个十进制整数,并分别赋值给 short、int、long 类型 ||%ho、%o、%lo |读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 ||%hx、%x、%lx |读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 ||%hu、%u、%lu |读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型 ||%f、%lf |读取一个十进制形式的小数,并分别赋值给 float、double 类型 ||%e、%le |读取一个指数形式的小数,并分别赋值给 float、double 类型 ||%g、%lg |既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型 ||%s |读取一个字符串(以空白符为结束) |
scanf() 控制字符串的完整写法为:
1%{*} & ...
C语言 const的用法—常量定义
我们经常将 const 变量称为常量(Constant)。创建常量的格式通常为:
1const type name = value;
const 和 type 都是用来修饰变量的,它们的位置可以互换,也就是将 type 放在 const 前面:
1type const name = value;
但我们通常采用第一种方式,不采用第二种方式。另外建议将常量名的首字母大写,以提醒程序员这是个常量。如下:
1const int AGE = 22;
C语言const是如何保证变量不被修改的?保证变量不被修改的方式有两种:①由编译器来阻止修改const变量的语句,让这种程序不能通过编译;②由操作系统来阻止,即把const 的内存地址访问权限标记为“只读”,一旦运行中的程序试图修改它,就会产生异常,终止进程。
上述两种方式,都可以达到让某一变量的值不被修改的目的,那么,实际运行时,就是是哪一种呢?
先来看一个简单的例子,源文件const.c:
12345678910#include <stdio.h>const int a=10;int main(){ int *p=& ...
C语言 const的用法—常量定义
我们经常将 const 变量称为常量(Constant)。创建常量的格式通常为:
1const type name = value;
const 和 type 都是用来修饰变量的,它们的位置可以互换,也就是将 type 放在 const 前面:
1type const name = value;
但我们通常采用第一种方式,不采用第二种方式。另外建议将常量名的首字母大写,以提醒程序员这是个常量。如下:
1const int AGE = 22;
C语言const是如何保证变量不被修改的?保证变量不被修改的方式有两种:①由编译器来阻止修改const变量的语句,让这种程序不能通过编译;②由操作系统来阻止,即把const 的内存地址访问权限标记为“只读”,一旦运行中的程序试图修改它,就会产生异常,终止进程。
上述两种方式,都可以达到让某一变量的值不被修改的目的,那么,实际运行时,就是是哪一种呢?
先来看一个简单的例子,源文件const.c:
12345678910#include <stdio.h>const int a=10;int main(){ int *p=& ...