近期c语言总结
2011-07-26 11:47
176 查看
最近又在看《C语言程序设计》,发现以前对于一些细节性的东西没有特别注意。现在写一点关于最近看到的一些总结。
1.首先我要对于我自己写程序的一些方式进行改变。以前我写程序的时候,常会出现这样的问题,比如我要在主函数中用到几个for循环。
以上这样的更改就降低了程序的复杂性。
2.其次是今天看到的一个关于指针的问题,其实以前我对于指针很糊涂。一直弄不清楚。
3 1
在这里我们更改了指针所指对象的值,即a=3,b=1;
如果swap函数这样写又会怎么样呢?
3.其次一个重点就是关于静态变量,要声明一个静态变量只需在变量的定义语句前加 static 。静态变量会存在于程序的整个运行期间,与之相对的是自动变量。自动变量可以在变量的定义前面加上auto语句,但也可以省略。一般我们定义的就是自动变量。对于static变量,它会自动保存上一次的值,而auto变量则会重新分配。对于全局变量,如果为static类型,则它只能在本文件中使用,其它文件不可以使用。
4.关于extern声明,如果在一个文件中定义了一个变量,另一个文件要使用,则只需在另一个文件中加一句 extern 声明。但对于上面讲的静态全局变量,则没有作用。其次,extern声明的时候可以去掉类型。如:
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语言的,希望对大家有帮助。
相关文章推荐