您的位置:首页 > 编程语言 > C语言/C++

近期c语言总结

2011-07-26 11:47 176 查看
最近又在看《C语言程序设计》,发现以前对于一些细节性的东西没有特别注意。现在写一点关于最近看到的一些总结。
1.首先我要对于我自己写程序的一些方式进行改变。以前我写程序的时候,常会出现这样的问题,比如我要在主函数中用到几个for循环。
for(int i=0;i!=n;i++)
{
...............
}
for(int i=0;i!=n;i++)
{
...............
}
这样就会产生重定义 i 的错误,所以我们在初始化 for 循环的初始化条件时要定义很多的变量,如i,j,k;这样会增加程序的复杂性。我们可以这样更改:
int i;
for( i=0; i!=n; i++)
{
..............
}
for( i=0; i!=n; i++)
{
..............
}


以上这样的更改就降低了程序的复杂性。
2.其次是今天看到的一个关于指针的问题,其实以前我对于指针很糊涂。一直弄不清楚。
#include <iostream>
using namespace std;
int swap ( int *p ,int *q );
int main()

{
int a, b;
cin >> a >> b ;
int *i_pointer1, *i_pointer2;
i_pointer1 = &a, i_pointer2 = &b;
swap ( i_pointer1 , i_pointer2 );
cout << *i_pointer1 << " " << *i_pointer2 <<endl ;
return 0;
}
int swap ( int *p , int *q )
{
int temp ;
temp = *p     ;
*p   = *q     ;
*q   = temp   ;
}
运行结果: 1 3
3 1
在这里我们更改了指针所指对象的值,即a=3,b=1;
如果swap函数这样写又会怎么样呢?
int swap ( int *p , int *q ) ;
{
int  *temp ;
temp = p ;
p    = q ;
q    = temp ;
return 0;
}
这里企图更改指针对象,通过交换形参指针对象来实现更改实参指针。不过这个函数不会起作用,因为在函数中不能通过形参指针对象来更改形参指针对象。
3.其次一个重点就是关于静态变量,要声明一个静态变量只需在变量的定义语句前加 static 。静态变量会存在于程序的整个运行期间,与之相对的是自动变量。自动变量可以在变量的定义前面加上auto语句,但也可以省略。一般我们定义的就是自动变量。对于static变量,它会自动保存上一次的值,而auto变量则会重新分配。对于全局变量,如果为static类型,则它只能在本文件中使用,其它文件不可以使用。
4.关于extern声明,如果在一个文件中定义了一个变量,另一个文件要使用,则只需在另一个文件中加一句 extern 声明。但对于上面讲的静态全局变量,则没有作用。其次,extern声明的时候可以去掉类型。如:
file1.c
int A , B , C ;
file2.c
extern int A , B , C ;
或extern A , B , C ;
以上就是我今天看的一些关于c语言的,希望对大家有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: