C語言程序設(shè)計(jì) PPT 第12章 C語言中用戶標(biāo)識符的作用域和存儲類型 配套教材 高等教育出版社 清華大學(xué)出版社_第1頁
C語言程序設(shè)計(jì) PPT 第12章 C語言中用戶標(biāo)識符的作用域和存儲類型 配套教材 高等教育出版社 清華大學(xué)出版社_第2頁
C語言程序設(shè)計(jì) PPT 第12章 C語言中用戶標(biāo)識符的作用域和存儲類型 配套教材 高等教育出版社 清華大學(xué)出版社_第3頁
C語言程序設(shè)計(jì) PPT 第12章 C語言中用戶標(biāo)識符的作用域和存儲類型 配套教材 高等教育出版社 清華大學(xué)出版社_第4頁
C語言程序設(shè)計(jì) PPT 第12章 C語言中用戶標(biāo)識符的作用域和存儲類型 配套教材 高等教育出版社 清華大學(xué)出版社_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第12章C語言中用戶標(biāo)識符的作用域和存儲類型12.1局部變量、全局變量和存儲分類12.2局部變量及其作用域和生存期12.3全局變量及其作用域和生存期12.4函數(shù)的存儲分類2023/2/517:2712.1局部變量、全局變量和存儲分類從變量的作用域的角度來觀察,變量可以分為全局變量和局部變量從變量值存在的時間(即生存期)觀察,變量的存儲有兩種不同的方式:靜態(tài)存儲方式和動態(tài)存儲方式靜態(tài)存儲方式是指在程序運(yùn)行期間由系統(tǒng)分配固定的存儲空間的方式動態(tài)存儲方式是在程序運(yùn)行期間根據(jù)需要進(jìn)行動態(tài)的分配存儲空間的方式2023/2/517:27程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)用戶區(qū)將數(shù)據(jù)存放在此區(qū)全局變量全部存放在靜態(tài)存儲區(qū)中①函數(shù)形式參數(shù)②函數(shù)中定義的沒有用關(guān)鍵字static聲明的變量③函數(shù)調(diào)用時的現(xiàn)場保護(hù)和返回地址等存放在動態(tài)存儲區(qū)程序開始執(zhí)行時給全局變量分配存儲區(qū),程序執(zhí)行完畢就釋放。在程序執(zhí)行過程中占據(jù)固定的存儲單元函數(shù)調(diào)用開始時分配,函數(shù)結(jié)束時釋放。在程序執(zhí)行過程中,這種分配和釋放是動態(tài)的2023/2/517:27每一個變量和函數(shù)都有兩個屬性:數(shù)據(jù)類型和數(shù)據(jù)的存儲類別數(shù)據(jù)類型,如整型、浮點(diǎn)型等存儲類別指的是數(shù)據(jù)在內(nèi)存中存儲的方式(如靜態(tài)存儲和動態(tài)存儲)存儲類別包括:

自動的、靜態(tài)的、寄存器的、外部的根據(jù)變量的存儲類別,可以知道變量的作用域和生存期2023/2/517:2712.1局部變量、全局變量和存儲分類1.自動變量(auto變量)局部變量,如果不專門聲明存儲類別,都是動態(tài)地分配存儲空間的調(diào)用函數(shù)時,系統(tǒng)會給局部變量分配存儲空間,調(diào)用結(jié)束時就自動釋放空間。因此這類局部變量稱為自動變量自動變量用關(guān)鍵字auto作存儲類別的聲明2023/2/517:2712.1局部變量、全局變量和存儲分類intf(inta){autointb,c=3;

┇}可以省略2023/2/517:2712.1局部變量、全局變量和存儲分類2.靜態(tài)局部變量(static局部變量)希望函數(shù)中的局部變量在函數(shù)調(diào)用結(jié)束后不消失而繼續(xù)保留原值,即其占用的存儲單元不釋放,在下一次再調(diào)用該函數(shù)時,該變量已有值(就是上一次函數(shù)調(diào)用結(jié)束時的值),這時就應(yīng)該指定該局部變量為“靜態(tài)局部變量”,用關(guān)鍵字static進(jìn)行聲明2023/2/517:27static變量:1).局部

a.靜態(tài)局部變量在函數(shù)內(nèi)定義,生存期為整個源程序,但作用域與自動變量相同,只能在定義該變量的函數(shù)內(nèi)使用。退出該函數(shù)后,盡管該變量還繼續(xù)存在,但不能使用它。

b.對基本類型的靜態(tài)局部變量若在說明時未賦以初值,則系統(tǒng)自動賦予0值。而對自動變量不賦初值,則其值是不定的。

2).全局

全局變量本身就是靜態(tài)存儲方式,靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲方式。但是他們的作用域,非靜態(tài)全局變量的作用域是整個源程序(多個源文件可以共同使用);而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。2023/2/517:27有以下程序 #include<stdio.h> intfun(intn) {staticintt=1;inti=1; for(;i<=n;i++)t*=i; returnt;} main() {intt=1,i; for(i=2;i<4;i++) t+=fun(i); printf("%d\n",t);}程序的運(yùn)行結(jié)果是()

A15 B11 C8 D4參考答案:A【解析】程序執(zhí)行過程為:執(zhí)行for循環(huán),i=2,t=1,調(diào)用函數(shù)fun(2),定義靜態(tài)存儲類別的局部變量t=1,此變量的作用域?yàn)楹瘮?shù)fun中,定義局部變量i=1,for循環(huán)實(shí)現(xiàn)t=1*1*2=2,返回2,主函數(shù)中t=1+2=3;i=3,t=3,調(diào)用函數(shù)fun(3),靜態(tài)存儲類別的局部變量上次調(diào)用后結(jié)果t=2,局部變量i=1,for循環(huán)實(shí)現(xiàn)t=2*1*2*3=12,返回12,t=3+12=15。最后輸出t為15,A選項(xiàng)正確。2023/2/517:27有以下程序 #include<stdio.h> intfun(inta) {intb=0; staticintc=3; a=(c++,b++); return(a);} main() {inta=2,i,k; for(i=0;i<2;i++) k=fun(a++); printf("%d\n",k);}程序的輸出結(jié)果是() A4 B0 C1 D2

參考答案:B【解析】題目中fun函數(shù)被執(zhí)行了兩次,兩次執(zhí)行后,都是返回了函數(shù)內(nèi)部的b值,所以答案為0,即B選項(xiàng)正確。2023/2/517:273.寄存器變量(register變量)一般情況下,變量(包括靜態(tài)存儲方式和動態(tài)存儲方式)的值是存放在內(nèi)存中的寄存器變量允許將局部變量的值放在CPU中的寄存器中現(xiàn)在的計(jì)算機(jī)能夠識別使用頻繁的變量,從而自動地將這些變量放在寄存器中,而不需要程序設(shè)計(jì)者指定2023/2/517:2712.2局部變量及其作用域和生存期定義變量可能有三種情況:在函數(shù)的開頭定義在函數(shù)內(nèi)的復(fù)合語句內(nèi)定義在函數(shù)的外部定義2023/2/517:2712.2局部變量及其作用域和生存期在一個函數(shù)內(nèi)部定義的變量只在本函數(shù)范圍內(nèi)有效在復(fù)合語句內(nèi)定義的變量只在本復(fù)合語句范圍內(nèi)有效在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部定義的變量稱為“局部變量”2023/2/517:27floatf1(inta){intb,c;……}charf2(intx,inty){inti,j;……}intmain(){intm,n;……return0;}a、b、c僅在此函數(shù)內(nèi)有效x、y、i、j僅在此函數(shù)內(nèi)有效m、n僅在此函數(shù)內(nèi)有效2023/2/517:27floatf1(inta){intb,c;……}charf2(intx,inty){inti,j;……}intmain(){inta,b;……return0;}類似于不同班同名學(xué)生a、b也僅在此函數(shù)內(nèi)有效2023/2/517:27intmain(){inta,b;……{intc;

c=a+b;……}……}c僅在此復(fù)合語句內(nèi)有效a、b僅在此復(fù)合語句內(nèi)有效2023/2/517:2712.3全局變量及其作用域和生存期在函數(shù)內(nèi)定義的變量是局部變量,而在函數(shù)之外定義的變量稱為外部變量外部變量是全局變量(也稱全程變量)全局變量可以為本文件中其他函數(shù)所共用有效范圍為從定義變量的位置開始到本源文件結(jié)束2023/2/517:27intp=1,q=5floatf1(inta){intb,c;……}charc1,c2;charf2(intx,inty){inti,j;……}intmain(){intm,n;……return0;}p、q、c1、c2為全局變量2023/2/517:27intp=1,q=5floatf1(inta){intb,c;……}charc1,c2;charf2(intx,inty){inti,j;……}intmain(){intm,n;……return0;}p、q的有效范圍c1、c2的有效范圍2023/2/517:27

例12.1有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),當(dāng)主函數(shù)調(diào)用此函數(shù)后,能求出平均分、最高分和最低分。解題思路:調(diào)用一個函數(shù)可以得到一個函數(shù)返回值,現(xiàn)在希望通過函數(shù)調(diào)用能得到3個結(jié)果??梢岳萌肿兞縼磉_(dá)到此目的。2023/2/517:27#include<stdio.h>floatMax=0,Min=0;intmain(){floataverage(floatarray[],intn);floatave,score[10];inti;printf("Pleaseenter10scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);ave=average(score,10);printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);return0;}2023/2/517:27floataverage(floatarray[],intn){inti;floataver,sum=array[0];Max=Min=array[0];for(i=1;i<n;i++){if(array[i]>Max)Max=array[i];elseif(array[i]<Min)Min=array[i];sum=sum+array[i];}aver=sum/n;return(aver);}2023/2/517:27avescore10MaxMinaverarraynMaxMinmain函數(shù)average函數(shù)建議非必要時不要使用全局變量2023/2/517:27

例12.2若外部變量與局部變量同名,分析結(jié)果。2023/2/517:27#include<stdio.h>inta=3,b=5;intmain(){intmax(inta,intb);inta=8;printf(“max=%d\n”,max(a,b));return0;}

intmax(inta,intb){intc;c=a>b?a:b;return(c);}a為局部變量,僅在此函數(shù)內(nèi)有效b為全部變量2023/2/517:27#include<stdio.h>inta=3,b=5;intmain(){intmax(inta,intb);inta=8;printf(“max=%d\n”,max(a,b));return0;}

intmax(inta,intb){intc;c=a>b?a:b;return(c);}a、b為局部變量,僅在此函數(shù)內(nèi)有效2023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}調(diào)用三次每調(diào)用一次,開辟新a和b,但c不是2023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}03bc第一次調(diào)用開始2023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}03bc第一次調(diào)用期間142023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第一次調(diào)用結(jié)束1472023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第二次調(diào)用開始042023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第二次調(diào)用期間04512023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第二次調(diào)用結(jié)束1582023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第三次調(diào)用開始052023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第三次調(diào)用期間05612023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}bc第三次調(diào)用結(jié)束1692023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}c整個程序結(jié)束62023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}在編譯時賦初值在函數(shù)調(diào)用時賦初值2023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}若不賦初值,是0若不賦初值,不確定2023/2/517:27

例12.3考察靜態(tài)局部變量的值。#include<stdio.h>intmain(){intf(int);inta=2,i;for(i=0;i<3;i++)printf(“%d\n”,f(a));return0;}intf(inta){autointb=0;

staticc=3;b=b+1;c=c+1;return(a+b+c);}僅在本函數(shù)內(nèi)有效2023/2/517:27例12.4輸出1到5的階乘值。解題思路:可以編一個函數(shù)用來進(jìn)行連乘,如第1次調(diào)用時進(jìn)行1乘1,第2次調(diào)用時再乘以2,第3次調(diào)用時再乘以3,依此規(guī)律進(jìn)行下去。2023/2/517:27#include<stdio.h>intmain(){intfac(intn);inti;for(i=1;i<=5;i++)printf(“%d!=%d\n”,i,fac(i));return0;}intfac(intn){staticintf=1;f=f*n;return(f);}若非必要,不要多用靜態(tài)局部變量2023/2/517:2712.3全局變量及其作用域和生存期全局變量都是存放在靜態(tài)存儲區(qū)中的。因此它們的生存期是固定的,存在于程序的整個運(yùn)行過程一般來說,外部變量是在函數(shù)的外部定義的全局變量,它的作用域是從變量的定義處開始,到本程序文件的末尾。在此作用域內(nèi),全局變量可以為程序中各個函數(shù)所引用。2023/2/517:271.在一個文件內(nèi)擴(kuò)展外部變量的作用域外部變量有效的作用范圍只限于定義處到本文件結(jié)束。如果用關(guān)鍵字extern對某變量作“外部變量聲明”,則可以從“聲明”處起,合法地使用該外部變量2023/2/517:27例12.5調(diào)用函數(shù),求3個整數(shù)中的大者。解題思路:用extern聲明外部變量,擴(kuò)展外部變量在程序文件中的作用域。2023/2/517:27#include<stdio.h>intmain(){intmax();

externintA,B,C;scanf(“%d%d%d”,&A,&B,&C);printf("maxis%d\n",max());return0;}

intA,B,C;

intmax(){intm;m=A>B?A:B;if(C>m)m=C;return(m);}2023/2/517:272.將外部變量的作用域擴(kuò)展到其他文件如果一個程序包含兩個文件,在兩個文件中都要用到同一個外部變量Num,不能分別在兩個文件中各自定義一個外部變量Num應(yīng)在任一個文件中定義外部變量Num,而在另一文件中用extern對Num作“外部變量聲明”在編譯和連接時,系統(tǒng)會由此知道Num有“外部鏈接”,可以從別處找到已定義的外部變量Num,并將在另一文件中定義的外部變量num的作用域擴(kuò)展到本文件2023/2/517:27

例12.6給定b的值,輸入a和m,求a*b和am的值。解題思路:分別編寫兩個文件模塊,其中文件file1包含主函數(shù),另一個文件file2包含求am的函數(shù)。在file1文件中定義外部變量A,在file2中用extern聲明外部變量A,把A的作用域擴(kuò)展到file2文件。2023/2/517:27文件file1.c:#include<stdio.h>intA;intmain(){intpower(int);intb=3,c,d,m;scanf("%d,%d",&A,&m);c=A*b;printf("%d*%d=%d\n",A,b,c);d=power(m);printf("%d**%d=%d\n",A,m,d);return0;}2023/2/517:27文件file2.c:externA;intpower(intn){inti,y=1;for(i=1;i<=n;i++)y*=A;return(y);}2023/2/517:273.將外部變量的作用域限制在本文件中有時在程序設(shè)計(jì)中希望某些外部變量只限于被本文件引用。這時可以在定義外部變量時加一個static聲明。file1.cstaticintA;intmain(){……}file2.cexternA;voidfun(intn){……A=A*n;……}只能用于本文件本文件仍然不能用2023/2/517:27說明:不要誤認(rèn)為對外部變量加static聲明后才采取靜態(tài)存儲方式,而不加static的是采取動態(tài)存儲聲明局部變量的存儲類型和聲明全局變量的存儲類型的含義是不同的對于局部變量來說,聲明存儲類型的作用是指定變量存儲的區(qū)域以及由此產(chǎn)生的生存期的問題,而對于全局變量來說,聲明存儲類型的作用是變量作用域的擴(kuò)展問題2023/2/517:27用static聲明一個變量的作用是:(1)對局部變量用static聲明,把它分配在靜態(tài)存儲區(qū),該變量在整個程序執(zhí)行期間不釋放,其所分配的空間始終存在。(2)對全局變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。2023/2/517:27注意:用auto、register、static聲明變量時,是在定義變量的基礎(chǔ)上加上這些關(guān)鍵字,而不能單獨(dú)使用。下面用法不對:inta;statica;

編譯時會被認(rèn)為“重新定義”。2023/2/517:27局部變量、全局變量的總結(jié)對一個數(shù)據(jù)的定義,需要指定兩種屬性:數(shù)據(jù)類型和存儲類別,分別使用兩個關(guān)鍵字例如:staticinta;autocharc;registerintd;可以用extern聲明已定義的外部變量例如:externb;靜態(tài)局部整型變量或靜態(tài)外部整型變量自動變量,在函數(shù)內(nèi)定義寄存器變量,在函數(shù)內(nèi)定義將已定義的外部變量b的作用域擴(kuò)展至此2023/2/517:27(1)從作用域角度分,有局部變量和全局變量。它們采用的存儲類別如下:按作用域角度分局部變量全局變量自動變量靜態(tài)局部變量寄存器變量靜態(tài)外部變量外部變量形式參數(shù)可以定義為自動變量或寄存器變量2023/2/517:27(2)從變量存在的時間區(qū)分,有動態(tài)存儲和靜態(tài)存儲兩種類型。靜態(tài)存儲是程序整個運(yùn)行時間都存在,而動態(tài)存儲則是在調(diào)用函數(shù)時臨時分配單元按生存期分動態(tài)存儲靜態(tài)存儲自動變量寄存器變量靜態(tài)局部變量外部變量形式參數(shù)靜態(tài)外部變量2023/2/517:27(3)從變量值存放的位置來區(qū)分,可分為:按變量值存放的位置分內(nèi)存中靜態(tài)存儲區(qū)內(nèi)存中動態(tài)存儲區(qū)靜態(tài)局部變量靜態(tài)外部變量自動變量和形式參數(shù)寄存器變量外部變量CPU中的寄存器2023/2/517:27(4)關(guān)于作用域和生存期的概念對一個變量的屬性可以從兩個方面分析:作用域:如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,就稱該范圍為該變量的作用域生存期:如果一個變量值在某一時刻是存在的,則認(rèn)為這一時刻屬于該變量的生存期作用域是從空間的角度,生存期是從時間的角度二者有聯(lián)系但不是同一回事2023/2/517:27inta;intmain(){…f2();…f1();…}voidf1(){autointb;…f2();…}voidf2(){staticintc;……}a的作用域b的作用域c的作用域文件file1.c2023/2/517:27a生存期b生存期c生存期mainf2f1mainf2f1main程序執(zhí)行過程2023/2/517:27變量存儲類別函數(shù)內(nèi)函數(shù)外作用域存在性作用域存在性自動變量和寄存器變量∨∨╳╳靜態(tài)局部變量∨∨╳∨靜態(tài)外部變量∨∨∨(只限本文件)∨外部變量∨∨∨∨各種類型變量的作用域和存在性的情況2023/2/517:27(5)static對局部變量和全局變量的作用不同局部變量使變量由動態(tài)存儲方式改變?yōu)殪o態(tài)存儲方式全局變量使變量局部化(局部于本文件),但仍為靜態(tài)存儲方式從作用域角度看,凡有static聲明的,其作用域都是局限的,或者是局限于本函數(shù)內(nèi)(靜態(tài)局部變量),或者局限于本文件內(nèi)(靜態(tài)外部變量)2023/2/517:27一般為了敘述方便,把建立存儲空間的變量聲明稱定義,而把不需要建立存儲空間的聲明稱為聲明在函數(shù)中出現(xiàn)的對變量的聲明(除了用extern聲明的以外)都是定義在函數(shù)中對其他函數(shù)的聲明不是函數(shù)的定義2023/2/517:2712.4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論