北京网站建设公司案例,wordpress校园,wordpress 浮动定位,泰安网站建设推荐1. 初识C1.1 C概念相关1.2 C发展史及其重要性1.2.1 发展史1.2.2 重要性 2. C关键字3. 命名空间4. 输入和输出 个人主页#xff1a;C_GUIQU 归属专栏#xff1a;【C学习】 1. 初识C
1.1 C概念相关 C语言是结构化和模块化的语言#xff0c;适合处理较小规模的程序。 【来源】… 1. 初识C1.1 C概念相关1.2 C发展史及其重要性1.2.1 发展史1.2.2 重要性 2. C关键字3. 命名空间4. 输入和输出 个人主页C_GUIQU 归属专栏【C学习】 1. 初识C
1.1 C概念相关 C语言是结构化和模块化的语言适合处理较小规模的程序。 【来源】1982年Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念发明了一种新的程序语言。为了表达该语言与C语言的渊源关系命名为C。
【概念】C是基于C语言而产生的它既可以进行C语言的过程化程序设计又可以进行以抽象数据类型为特点的基于对象的程序设计还可以进行面向对象的程序设计。
【性质】
面向对象三大特性封装继承多态。
【C语言和C的关系】
1.2 C发展史及其重要性
1.2.1 发展史
【C的历史版本】
1.2.2 重要性
重要性不言而喻
【4个层次】
第一个层次C基础 (平平常常)第二个层次正确高效的使用C (驾轻就熟)第三个层次深入解读C (出神入化)第四个层次研究C (返璞归真) 【建议】中后期画思维导图总结。 【摘录】 最后我说一说我的一些感受 这些年来的对于外企和国内感受—— 国外牛B的IT公司的工程能力并不见得比国内的要强多少但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司最可怕的是那些有超强架构和设计能力的“老程序员们”还战斗在一线这些战斗在一线的老鸟的能力绝对超过100个普能的新手。对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说对于大多数人来说如果你没有编程到30岁你还不能成为一个“合格”的程序员。所以并不是编程编到30岁就玩完了而是编程编到30岁才刚刚入门。这些不合格的程序整天BS这个不好那个不好的而且喜欢速成好大喜功。我是一个奔四的人了编程就像登山一样越往上爬人越少所以在我这个年纪还有想法对编程还有热情的人不多了基本上都是转Manager了。其实什么职位Title都是虚的公司没了什么都没了只有技术才是硬通货。而且越是这个年纪还在玩编程玩技术的人其实其经验和能力都是比较强的都是中坚力量如果还有其它这个年纪和我一样的人求交往。 2. C关键字 C语言32个关键字C总计63个关键字。 后期学习慢慢了解。 asm
do
if
return
try
continue
auto
double
inline
short
typedef
for
bool
dynamic_cast
int
signed
typeid
public
break
else
long
sizeof
typename
throw
case
enum
mutable
static
union
wchar_t
catch
explicit
namespace
static_cast
unsigned
default
char
export
new
struct
using
friend
class
extern
operator
switch
virtual
register
const
false
private
template
void
true
const_cast
float
protected
this
volatile
while
delete
goto
reinterpret_cast3. 命名空间
【引言】
//C语言命名冲突报错
#includestdio.h
#includestdlib.hint rand 10;int main()
{int a 1;printf(%d\n,rand);return 0;
}C中引入命名空间namespace用以解决这类问题。 【概念】
命名空间namespace是 C 提供的一种解决命名冲突问题的方法可以将不同作用域的标识符如变量、函数、类等组织在一起。
【性质】
是用来组织代码并避免命名冲突的一种机制。避免命名冲突不同的命名空间中可以有相同名称的变量和函数彼此不会产生冲突。模块化组织更好地组织和管理代码提高可维护性。作用域控制控制变量和函数的可见范围避免全局污染。
定义命名空间
namespace myNamespace
{int a;//定义变量void fun();//定义函数
}使用命名空间中的成员 作用域运算符 :: 在C中用于访问命名空间的成员和限定类的成员函数的定义位置。 可以理解为访问操作符用于访问变量和函数。 namespace myNamespace
{int a;void fun();myNamespace :: a 1;//使用变量myNamespace :: fun();//使用函数
}嵌套命名空间
namespace 1
{namespace 2//嵌套{int a;void fun();}
}
myNamespace::a 1;
myNamespace::fun();使用 using声明
#include iostreamnamespace NamespaceA
{int a 5;
}int main()
{using NamespaceA::a; // 使用using声明std::cout a a std::endl; // 直接使用a无需NamespaceA::前缀return 0;
}使用 using namespace指令
#include iostreamnamespace NamespaceA
{int a 5;void func() {std::cout Hello from NamespaceA! std::endl;}
}int main()
{using namespace NamespaceA; // 使用using namespace指令std::cout a a std::endl; // 直接访问命名空间NamespaceA中的变量afunc(); // 直接调用命名空间NamespaceA中的函数funcreturn 0;
}//【输出】
/*
a 5
Hello from NamespaceA!
*/【总示例】
#include iostream// 定义命名空间NamespaceA
namespace NamespaceA
{int a 5;// 定义嵌套命名空间NamespaceBnamespace NamespaceB {int b 10;}
}int main()
{// 使用 using声明using NamespaceA::a;std::cout Using declaration: a a std::endl;// 使用 using namespace指令using namespace NamespaceA;std::cout Using namespace directive: a a std::endl; // 可直接使用a// 使用嵌套命名空间NamespaceB中的成员std::cout NamespaceA::NamespaceB::b NamespaceA::NamespaceB::b std::endl;return 0;
}【输出】
Using declaration: a 5
Using namespace directive: a 5
NamespaceA::NamespaceB::b 10using和using namespace两者区别
using声明通过using 命名空间::成员的方式可以将命名空间中的特定成员引入当前作用域只能引入命名空间中的指定成员不会引入整个命名空间。using namespace指令通过using namespace 命名空间的方式可以将整个命名空间的所有成员引入当前作用域可以直接访问整个命名空间中的成员但可能会引入命名空间中的不必要成员增加命名冲突的可能。
4. 输入和输出
#includeiostreamint main()
{std :: cout Hello C! std :: endl;return 0;
}【输出】
Hello C!【优化/简化】
#include iostreamusing namespace std;int main()
{cout Hello world! endl;return 0;
}【输出】
Hello world!【说明】
使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时必须包含 iostream头文件以及按命名空间使用方法使用std。cout和cin是全局的流对象endl是特殊的C符号表示换行输出他们都包含在包含头文件中。是流插入运算符是流提取运算符。使用C输入输出更方便不需要像printf/scanf输入输出时那样需要手动控制格式。C的输入输出可以自动识别变量类型。实际上cout和cin分别是ostream和istream类型的对象和也涉及运算符重载等知识。 注意早期标准库将所有功能在全局域中实现声明在.h后缀的头文件中使用时只需包含对应头文件即可后来将其实现在std命名空间下为了和C头文件区分也为了正确使用命名空间规定C头文件不带.h旧编译器(vc 6.0)中还支持iostream.h格式后续编译器已不支持因此推荐使用std的方式。