C语言关键字有哪些
C语言关键词学习总结
一、static关键字
1、局部变量
生命周期:原先存在栈中,生命周期语句执行完毕便结束了。现在存放到静态数据区,生命周期持续到整个程序执行结束。
作用域:并没有改变作用域,还是仅限于该语句块。并且只在初次运行的时候进行初始化,下次调用时它的值是上一次函数调用结束之后的值。每次调用后值会被保存。
2、全局变量
对干一个全部变量,既可以在本源文件中被访问到,也可以在同一个工程的其它源文件中被访问(只需用extern进行声明即可)。如果加上static,限制该全局变量的作用域范围,由原来的整个工程可见变为本源文件可见。
二、const关键字
1、用const修饰一般变量
用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。
2、const与指针搭配使用
用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。
两个基础概念: 指针常量和常量指针。
指针常量:即指针本身的值是不可改变的,而指针指向的变量的值是可以改变的;
常量指针:即指针指向的变量的值是不可改变的,而指针本身的值是可以改变的。
三、register关键字用法
register: 这个关键字请求编译器尽可能的将变量存在CPU 内部寄存器中而不是通过内存寻址访问以提高效率。注意是尽可能,不是绝对。寄存器其实就是一块一块小的存储空间,只不过其存取速度要比内存快得多。数据从内存里拿出来先放到寄存器,然后CPU 再从寄存器里读取数据来处理,处理完后同样把数据通过寄存器存放到内存里,CPU 不直接和内存打交道。
四、auto关键字
用于声明变量的生存期为自动,所有的变量默认就是auto的。
五、inline内联函数
调用函数时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(inlinefunction),又称内嵌函数或内置函数。
优点:内联函数可以有效避免函数调用的开销,程序执行效率更高。
缺点:如果被声明为内联函数的函数体非常大,则编译器编译后程序的可执行码将会变得很大。
绛旓細C璇█鐨勫叧閿瓧鍏辨湁32涓紝鏍规嵁鍏抽敭瀛楃殑浣滅敤锛鍙垎鍏朵负鏁版嵁绫诲瀷鍏抽敭瀛椼佹帶鍒惰鍙ュ叧閿瓧銆佸瓨鍌ㄧ被鍨嬪叧閿瓧鍜屽叾瀹冨叧閿瓧鍥涚被銆1 鏁版嵁绫诲瀷鍏抽敭瀛楋紙12涓級锛(1) char 锛氬0鏄庡瓧绗﹀瀷鍙橀噺鎴栧嚱鏁 (2) double 锛氬0鏄庡弻绮惧害鍙橀噺鎴栧嚱鏁 (3) enum 锛氬0鏄庢灇涓剧被鍨 (4) float锛氬0鏄庢诞鐐瑰瀷鍙橀噺鎴栧嚱鏁 (5) int锛...
绛旓細(1). char 锛氬0鏄庡瓧绗﹀瀷鍙橀噺鎴栧嚱鏁 (2). double 锛氬0鏄庡弻绮惧害鍙橀噺鎴栧嚱鏁 (3). enum 锛氬0鏄庢灇涓剧被鍨 (4). float锛氬0鏄庢诞鐐瑰瀷鍙橀噺鎴栧嚱鏁 (5). int锛 澹版槑鏁村瀷鍙橀噺鎴栧嚱鏁 (6). long 锛氬0鏄庨暱鏁村瀷鍙橀噺鎴栧嚱鏁 (7). short 锛氬0鏄庣煭鏁村瀷鍙橀噺鎴栧嚱鏁 (8). signed锛氬0鏄庢湁绗﹀彿绫诲瀷鍙橀噺鎴栧嚱鏁 (9...
绛旓細鍏抽敭璇嶏細void 锛氬0鏄庡嚱鏁版棤杩斿洖鍊兼垨鏃犲弬鏁帮紝澹版槑鏃犵被鍨嬫寚閽堬紝鏄惧紡涓㈠純杩愮畻缁撴灉 char 锛氬瓧绗﹀瀷绫诲瀷鏁版嵁锛屽睘浜庢暣鍨嬫暟鎹殑涓绉 int 锛氭暣鍨嬫暟鎹紝閫氬父涓虹紪璇戝櫒鎸囧畾鐨勬満鍣ㄥ瓧闀 float 锛氬崟绮惧害娴偣鍨嬫暟鎹紝灞炰簬娴偣鏁版嵁鐨勪竴绉 double 锛氬弻绮惧害娴偣鍨嬫暟鎹紝灞炰簬娴偣鏁版嵁鐨勪竴绉 short 锛氫慨楗癷nt锛岀煭鏁村瀷鏁版嵁锛屽彲...
绛旓細C璇█鍏抽敭瀛楁湁鍝簺 鏁版嵁绫诲瀷鍏抽敭瀛 short锛氫慨楗癷nt锛岀煭鏁村瀷鏁版嵁锛屽彲鐪佺暐琚慨楗扮殑int銆傦紙K&R鏃舵湡寮曞叆锛塴ong锛氫慨楗癷nt锛岄暱鏁村瀷鏁版嵁锛屽彲鐪佺暐琚慨楗扮殑int銆傦紙K&R鏃舵湡寮曞叆锛塴ong long锛氫慨楗癷nt锛岃秴闀挎暣鍨嬫暟鎹紝鍙渷鐣ヨ淇グ鐨刬nt銆傦紙C99鏍囧噯鏂板锛塻igned锛氫慨楗版暣鍨嬫暟鎹紝鏈夌鍙锋暟鎹被鍨嬨傦紙C89鏍囧噯鏂板锛塽nsig...
绛旓細c璇█鍏抽敭瀛楁湁锛auto 锛氬0鏄庤嚜鍔ㄥ彉閲忥紱break锛氳烦鍑哄綋鍓嶅惊鐜 锛沜ase锛氬紑鍏宠鍙ュ垎鏀 锛沜har 锛氬0鏄庡瓧绗﹀瀷鍙橀噺鎴栧嚱鏁拌繑鍥炲肩被鍨锛沜onst 锛氬0鏄庡彧璇诲彉閲忥紱continue锛氱粨鏉熷綋鍓嶅惊鐜紝寮濮嬩笅涓杞惊鐜 锛沝efault锛氬紑鍏宠鍙ヤ腑鐨勨滈粯璁も濆垎鏀 锛沝o锛氬惊鐜鍙ョ殑寰幆浣撱侰璇█鐨勫叧閿瓧鍏辨湁32涓紝鏍规嵁鍏抽敭瀛楃殑浣滅敤锛屽彲...
绛旓細C璇█鎬诲叡鏈32涓叧閿瓧锛auto break锛4.3.2锛 case锛4.5锛char锛2.3.3锛5.1锛 const锛5.3.5锛 continue锛4.3.2锛塪efault锛4.5锛 do锛4.3.1锛 double锛2.3.2锛塭lse锛3.6.1锛 enum锛8.4锛 extern锛5.3.1锛塮loat锛2.3.2锛5.1锛 for锛3.6.3锛...
绛旓細鍏抽敭瀛楀氨鏄凡琚獵璇█鏈韩浣跨敤锛屼笉鑳戒綔鍏跺畠鐢ㄩ斾娇鐢ㄧ殑瀛椼備緥濡傚叧閿瓧涓嶈兘鐢ㄤ綔鍙橀噺鍚嶃佸嚱鏁板悕绛 鐢盇NSI鏍囧噯瀹氫箟鐨凜璇█鍏抽敭瀛楀叡32涓細auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default ...
绛旓細C璇█涓殑32涓叧閿瓧鍙婂叾鎰忔濆涓嬶細1銆乤uto 澹版槑鑷姩鍙橀噺 2銆short 澹版槑鐭暣鍨嬪彉閲忔垨鍑芥暟 3銆乮nt 澹版槑鏁村瀷鍙橀噺鎴栧嚱鏁 4銆乴ong 澹版槑闀挎暣鍨嬪彉閲忔垨鍑芥暟 5銆乫loat 澹版槑娴偣鍨嬪彉閲忔垨鍑芥暟 6銆乨ouble 澹版槑鍙岀簿搴﹀彉閲忔垨鍑芥暟 7銆乧har 澹版槑瀛楃鍨嬪彉閲忔垨鍑芥暟 8銆乻truct 澹版槑缁撴瀯浣撳彉閲忔垨...
绛旓細sigened char unsigned char渚:char c;绗崄涓叧閿瓧:break鐢ㄦ潵琛ㄧず涓柇銆備竴鑸敤鍦ㄥ惊鐜腑銆傚垽鏂槸鍚︽弧瓒虫潯浠剁劧鍚庝腑鏂綋鍓嶅惊鐜備緥:break;绗崄涓涓叧閿瓧:continue鐢ㄦ潵琛ㄧず璺宠繃褰撳墠鍏跺悗闈㈢殑璇彞,缁х画涓嬩竴娆″惊鐜備緥:continue;绗崄浜屼釜鍏抽敭瀛:long鐢ㄦ潵澹版槑闀垮瀷鐨勭被鍨嬨傛瘮濡俵ong int long double .绗崄涓変釜鍏抽敭瀛:if鍒ゆ柇...
绛旓細C璇█鐨勫叧閿瓧鍏辨湁32涓紝鏍规嵁鍏抽敭瀛楃殑浣滅敤锛屽彲鍒嗗叾涓鏁版嵁绫诲瀷鍏抽敭瀛銆佹帶鍒惰鍙ュ叧閿瓧銆佸瓨鍌ㄧ被鍨嬪叧閿瓧鍜屽叾瀹冨叧閿瓧鍥涚被銆備竴銆佸叧浜庢暟鎹被鍨嬬殑鍏抽敭瀛(12涓)char 锛氬0鏄庡瓧绗﹀瀷鍙橀噺鎴栧嚱鏁 double 锛氬0鏄庡弻绮惧害鍙橀噺鎴栧嚱鏁 enum 锛氬0鏄庢灇涓剧被鍨 float锛氬0鏄庢诞鐐瑰瀷鍙橀噺鎴栧嚱鏁 int锛氬0鏄庢暣鍨嬪彉閲忔垨鍑芥暟 long 锛...