- 博客(9)
- 收藏
- 关注
原创 c primer plus上的一点错误(清单程序14.14)
很容易看出来的一个错误puts("add title"); while (count <BKS && s_gets(library[count].title, TITL) && library[count].title[0] != '\0') { puts("author"); s_get...
2019-10-22 23:05:36
329
原创 结构和指针
结构中指针加法的使用#include <stdio.h>#define N 2struct fund{ double bankfund; double savefund;};void show(const struct fund money[],int);int main(){ struct fund raiden[N]={ ...
2019-10-22 18:33:20
508
原创 extern
int i; //i是具有外部链接的变量。extern int m; //m在别的文件中被定义了,具有外部链接,这里必须使用extern再次声明。int main(){ extern int i; //如果在这里不使用extern,程序会在main中创建一个i,但是在执行的时候会被文件作用域的i掩盖….}...
2019-10-22 00:04:40
2954
1
原创 静态存储
具有文件作用域的变量都是静态存储的,但是对于文件作用域的变量来说,static是用来表明这个变量是具有内部链接的。而非对于块作用域的变量用static修饰,就表明这个变量是静态的。线程存储用在并发程序设计中使用,从被声明到线程结束一直存在。块作用域的变量通常具有自动存储期。******但是如果在块作用域中使用staticvoid test(int i){int m=1; ...
2019-10-22 00:03:29
850
原创 内部链接/外部链接/无链接
有块作用域、函数或函数原型作用域的变量都是无链接变量。具有文件作用域的变量才会有内部链接和外部链接int i=1; i 文件作用域,外部链接,即同一个project的其他文件也可以使用i。static int m=2; m 文件作用域,内部链接,只有在这个文件里的函数可以使用m,其他文件不可以。...
2019-10-22 00:02:00
454
原创 作用域
一个变量的作用域是程序中可以访问这个变量的区域。块作用域:{ }中间的是一个块for(int i=0;i<10;i++)printf(……. );在for语句中,下面附带的语句也是块的一部分函数作用域:在函数内部定义的变量就只在函数里能被访问,并且离开函数以后被销毁void test(int){ int i ; }这里的i就是只能在这个函数里被访问,...
2019-10-22 00:01:00
99
原创 restirct的用法
int *restirct restar=(int*)malloc(10*sizeof(int));for(n=0;n<10;n++){ restar[n]+=5; restar[n]+=3;}这里restar是唯一一个可以访问malloc分配的内存的方式,用restict限定了以后,编译器会认定只有restar可以访问,就会将for语句里的两行代码变为restar...
2019-10-21 23:57:32
340
原创 const的用法
const float *pf; pf=&i;等同于float const *pf;这里pf指向的值不能被改变,但pf指向哪里可以改变;i的值不能被改变,但是pf可以指向别的值。float *const pt; pt=&i; const的是pt,而不是float,这个要求const必须和pt紧邻这里pt本身的值,即pt指向哪里不能改变,只能指向i,但是i的值可以改变。...
2019-10-21 23:54:49
194
原创 malloc用法及注意
首先看变长数组: double item[n];n可以在外部定义大小。使用malloc代替: ptd=(double*)malloc(n*sizeof(double));第一个参数n是数组的元素数量,第二个是每个元素的大小。malloc返回的是一个无类型的指针,因此在前面加上(double*)来使得其变为指向double的指针。malloc与calloc对比 ptd=(double*...
2019-10-21 23:48:26
627
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人