一、指針數(shù)組
存放指針的數(shù)組
int* arr[10];
二、數(shù)組指針
指向數(shù)組的指針
? int (*p)[10]? ? ? 其中p是數(shù)組指針的名字
? int (*) [10]? ? ? ?這個(gè)是類型(&arr 取出的類型)
三、數(shù)組參數(shù)和指針參數(shù)
一維數(shù)組傳參,直接使用指針接收
void test(int *arr)
二維數(shù)組的傳參,
void test(int arr[3][5]);
void test(int arr[][5]);//行可以省略,列不可以省略,但是不可以都省略
? void test(int (*p)[5]);//形參寫成指針的形式
注:
? 當(dāng)函數(shù)的形參是二級(jí)指針時(shí),不可以只把二維數(shù)組的數(shù)組名傳入函數(shù),因?yàn)槎S數(shù)組的數(shù)組名是第一行的地址,需要用數(shù)組指針來(lái)接收。
四、函數(shù)指針
函數(shù)指針存儲(chǔ)的是函數(shù)的地址,其中,例如,函數(shù)名是Add? ,&Add? 與? Add? 意義一樣;
int Add (int x,int y)
{
? return x+y;
}
此函數(shù)的地址表達(dá)方式是:? int? (*pf)(int , int)=Add;? ?pf? 就是函數(shù)指針變量。
注:
? a、int ret = (*pf) (2,3); 和 int ret = Add(2,3); 和 int ret = pf(2,3);? 等價(jià),其中第一個(gè)表達(dá)式中的 * 相當(dāng)于擺設(shè),無(wú)實(shí)際作用,但如果加了 * 千萬(wàn)不要忘了加括號(hào),必須加括號(hào)!
例題:
下邊的兩行代碼的意思
1 . ( *(void?(*) () ) 0 ) ();
a、(void?(*) () )是函數(shù)指針類型,是強(qiáng)制類型轉(zhuǎn)換的作用;
b、(void?(*) () ) 0 對(duì)0進(jìn)行強(qiáng)制類型轉(zhuǎn)換,意思就是認(rèn)為0地址處放置著(void?(*) () )類型的函數(shù);
c、*(void?(*) () ) 0 對(duì)此函數(shù)進(jìn)行解引用
d、( *(void?(*) () ) 0 ) () 調(diào)用該函數(shù)
2 . void(*signal (int , void ( * ) (int)) ) (int);
? a、signal 先和括號(hào)結(jié)合,所以signal目前是一個(gè)函數(shù)
? b、signal (int , void ( * ) (int)) 表示signal的第一個(gè)參數(shù)是 int ,第二個(gè)參數(shù)是void ( * ) (int) 是一個(gè)函數(shù)指針類型;
? c、void(*signal (int , void ( * ) (int)) ) (int)? 表示函數(shù)的返回類型是void(*) (int)?
五、函數(shù)指針數(shù)組
例如有四個(gè)函數(shù):
int (*pf1) (int ,int) = Add;
int (*pf1) (int ,int) = Sub;
int (*pf1) (int ,int) = Mul;
int (*pf1) (int ,int) = Div;
函數(shù)指針數(shù)組的表達(dá)方式
int (*pf[5]) (int ,int) = {0, Add, Sub, Mul, Div}; pf首先和 [4] 結(jié)合
六、指向函數(shù)指針數(shù)組的指針
函數(shù)指針????????????????????????????????????????int (*pf) (int ,int ) = &Add;
函數(shù)指針數(shù)組? ? ? ? ? ? ? ????????? ? ? ? ? ?int (* pfarr[4]) (int , int);
指向函數(shù)中指針數(shù)組的指針? ?????????int (* (*p3)[4]) (int , int) = &pfarr;
七、回調(diào)函數(shù)
? ? ? ? 回調(diào)函數(shù)就是一個(gè)通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一 個(gè)函數(shù),當(dāng)這個(gè)指針被用來(lái)調(diào)用其所指向的函數(shù)時(shí),我們就說這是回調(diào)函數(shù)?;卣{(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時(shí)由另外的一方調(diào)用的,用于對(duì)該事件或條件進(jìn)行響應(yīng)。void test()
{
printf("hehe\n");
}
void print_hehe(void (*p) ())
{
if(1)
{
p();
}
}
int main()
{
print_hehe(test);
return 0;
}
以上代碼,沒有調(diào)用函數(shù)? test(),將函數(shù)指針傳給了 print_hehe 由此函數(shù)通過? if? 條件和函數(shù)指針來(lái)調(diào)用函數(shù),此時(shí)? test()? 是回調(diào)函數(shù)。?
用法:
#includevoid menu()
{
printf("##############################\n");
printf("##### 1.Add 2.Sub ####\n");
printf("##### 3.Mul 4.Div ####\n");
printf("##### 0.exit ####\n");
printf("##############################\n");
}
int Add(int x, int y)
{
return x + y;
}
int Sub(int x, int y)
{
return x - y;
}
int Mul(int x, int y)
{
return x * y;
}
int Div(int x, int y)
{
return x / y;
}
void calc(int(*pf)(int, int))
{
int x = 0;
int y = 0;
int ret = 0;
printf("請(qǐng)輸入2個(gè)操作數(shù):>");
scanf("%d%d", &x, &y);
ret = pf(x, y);
printf("ret=%d\n", ret);
}
int main()
{
int input = 0;
int ret = 0;
do
{
menu();
printf("請(qǐng)選擇:>");
scanf("%d", &input);
switch (input)
{
case 1:
calc(Add);
break;
case 2:
calc(Sub);
break;
case 3:
calc(Mul);
break;
case 4:
calc(Div);
break;
case 0:
printf("退出!");
break;
default:
printf("選擇錯(cuò)誤!");
break;
}
} while (input);
return 0;
}
上邊代碼中 calc() 就是回調(diào)函數(shù).
下邊是 qsort 的使用,qsort是一個(gè)庫(kù)函數(shù),是基于快速排序算法實(shí)現(xiàn)的一個(gè)排序函數(shù),qsort可以排序任意類型的數(shù)據(jù)。
void qsort (void* base,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 待排序數(shù)組的起始位置
size_t num,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)組元素個(gè)數(shù)
size_t width,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一個(gè)元素的字節(jié)大小
int (*cmp)(const void*? e1,const void* e2)? ? ? ? 函數(shù)指針,cmp是比較函數(shù),e1、? e2是待比較兩個(gè)元素的地址。返回值是當(dāng)e1
e2時(shí),返回>0的數(shù)。cmp是自定義的比較函數(shù)。 )
#include#includeint cmp_int(const void* e1, const void* e2)
{
return (*(int*)e1 - *(int*)e2);
}
struct Stu
{
char name[20];
int age;
double score;
};
int cmp_stu_by_age(const void* e1,const void* e2)
{
return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
}
void test1()
{
struct Stu arr[3] = { {"mike",20,55.5},{"lisa",30,88.0},{"kuka",50,90.0} };
int sz = sizeof(arr) / sizeof(arr[0]);
qsort(arr, sz, sizeof(arr[0]), cmp_stu_by_age);
}
void test()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
qsort(arr, sz, sizeof(arr[0]), cmp_int);
}
int main()
{
test();
test1();
return 0;
}
注:
? a、void* 類型的指針可以接收任意類型的指針;
指針與數(shù)組相關(guān)例題解析
例1、
int main()
{
int a[] = {1,2,3,4};
printf("%d\n",sizeof(a))
printf("%d\n",sizeof(a+0));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(a+1));
printf("%d\n",sizeof(a[1]));
printf("%d\n",sizeof(&a));
printf("%d\n",sizeof(*&a));
printf("%d\n",sizeof(&a+1));
printf("%d\n",sizeof(&a[0]));
printf("%d\n",sizeof(&a[0]+1));
return 0;
}
sizeof 計(jì)算對(duì)象所占內(nèi)存的大小,單位是字節(jié)。
printf("%d\n",sizeof(a))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?16
? printf("%d\n",sizeof(a+0));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 4/8? 表示數(shù)組首元素的地址
? printf("%d\n",sizeof(*a));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?4? ? ?表示第一個(gè)元素的大小
? printf("%d\n",sizeof(a+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 4/8? ?第二個(gè)元素的地址的大小
? printf("%d\n",sizeof(a[1]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???4? ? ??第二個(gè)元素的大小
? printf("%d\n",sizeof(&a));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4/8? ? 數(shù)組的地址的大小
? printf("%d\n",sizeof(*&a));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 16? ? ? 計(jì)算整個(gè)數(shù)組的大小
? printf("%d\n",sizeof(&a+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?4/8? ? 計(jì)算指向數(shù)組后邊數(shù)組處地址的大小
? printf("%d\n",sizeof(&a[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? 4/8? ? 第一個(gè)元素地址的大小
? printf("%d\n",sizeof(&a[0]+1));? ? ? ? ? ? ? ? ? ? ? ? ? ??4/8? ? 第二個(gè)元素地址的大小
例2、
int main()
{
char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr+0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));
printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr+0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr+1));
printf("%d\n", strlen(&arr[0]+1));
return 0;
}
sizeof 計(jì)算對(duì)象所占內(nèi)存的大小,單位是字節(jié)。
?printf("%d\n", sizeof(arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6
? printf("%d\n", sizeof(arr+0));? ? ? ? ? ? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(*arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1
? printf("%d\n", sizeof(arr[1]));? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
? printf("%d\n", sizeof(&arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(&arr+1));? ? ? ? ? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(&arr[0]+1));? ? ? ? ? ? ? ? ? ? ? 4/8? printf("%d\n", strlen(arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(arr+0));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(*arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?err,此時(shí)*arr是首元素,首元素的值是97,可能會(huì)發(fā)生越界
? printf("%d\n", strlen(arr[1]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?err
? printf("%d\n", strlen(&arr));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(&arr+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(&arr[0]+1));? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
例3、
int main()
{
char arr[] = "abcdef";
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr+0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));
printf("%d\n", strlen(arr));
printf("%d\n", strlen(arr+0));
printf("%d\n", strlen(*arr));
printf("%d\n", strlen(arr[1]));
printf("%d\n", strlen(&arr));
printf("%d\n", strlen(&arr+1));
printf("%d\n", strlen(&arr[0]+1));
return 0;
}
sizeof 計(jì)算對(duì)象所占內(nèi)存的大小,單位是字節(jié)。
? printf("%d\n", sizeof(arr));? ? ? ? ? ? ? ? ? ? ? ? ?7
? printf("%d\n", sizeof(arr+0));? ? ? ? ? ? ? ? ? ? ?4/8 數(shù)組首元素地址
? printf("%d\n", sizeof(*arr));? ? ? ? ? ? ? ? ? ? ? ? 1? ? 首元素
? printf("%d\n", sizeof(arr[1]));? ? ? ? ? ? ? ? ? ? ?1
? printf("%d\n", sizeof(&arr));? ? ? ? ? ? ? ? ? ? ? 4/8??
? printf("%d\n", sizeof(&arr+1));? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(&arr[0]+1));? ? ? ? ? ? ? 4/8? printf("%d\n", strlen(arr));? ? ? ? ? ? ? ? ? ? ? ? ? 6
? printf("%d\n", strlen(arr+0));? ? ? ? ? ? ? ? ? ? ? 6
? printf("%d\n", strlen(*arr));? ? ? ? ? ? ? ? ? ? ? ? ?err
? printf("%d\n", strlen(arr[1]));? ? ? ? ? ? ? ? ? ? ??err
? printf("%d\n", strlen(&arr));? ? ? ? ? ? ? ? ? ? ? ? 6
? printf("%d\n", strlen(&arr+1));? ? ? ? ? ? ? ? ? ?隨機(jī)值
? printf("%d\n", strlen(&arr[0]+1));? ? ? ? ? ? ? ? 5
例4、
int main()
{
char *p = "abcdef";
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(p+1));
printf("%d\n", sizeof(*p));
printf("%d\n", sizeof(p[0]));
printf("%d\n", sizeof(&p));
printf("%d\n", sizeof(&p+1));
printf("%d\n", sizeof(&p[0]+1));
printf("%d\n", strlen(p));
printf("%d\n", strlen(p+1));
printf("%d\n", strlen(*p));
printf("%d\n", strlen(p[0]));
printf("%d\n", strlen(&p));
printf("%d\n", strlen(&p+1));
printf("%d\n", strlen(&p[0]+1));
return 0;
}
sizeof 計(jì)算對(duì)象所占內(nèi)存的大小,單位是字節(jié)。
? printf("%d\n", sizeof(p));? ? ? ? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(p+1));? ? ? ? ? ? ? ? ? ? 4/8
? printf("%d\n", sizeof(*p));? ? ? ? ? ? ? ? ? ? ? ?1?
? printf("%d\n", sizeof(p[0]));? ? ? ? ? ? ? ? ? ? ?1
? printf("%d\n", sizeof(&p));? ? ? ? ? ? ? ? ? ? ? ?4/8
? printf("%d\n", sizeof(&p+1));? ? ? ? ? ? ? ? ? ?4/8
? printf("%d\n", sizeof(&p[0]+1));? ? ? ? ? ? ? ?4/8
? printf("%d\n", strlen(p));? ? ? ? ? ? ? ? ? ? ? ? ? 6
? printf("%d\n", strlen(p+1));? ? ? ? ? ? ? ? ? ? ? 5??
? printf("%d\n", strlen(*p));? ? ? ? ? ? ? ? ? ? ? ?? err
? printf("%d\n", strlen(p[0]));? ? ? ? ? ? ? ? ? ? ? err
? printf("%d\n", strlen(&p));? ? ? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(&p+1));? ? ? ? ? ? ? ? ? ? 隨機(jī)值
? printf("%d\n", strlen(&p[0]+1));? ? ? ? ? ? ? ? 5
例5、
int main()
{
inta[3][4] = {0};
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(a[0][0]));
printf("%d\n",sizeof(a[0]));
printf("%d\n",sizeof(a[0]+1));
printf("%d\n",sizeof(*(a[0]+1)));
printf("%d\n",sizeof(a+1));
printf("%d\n",sizeof(*(a+1)));
printf("%d\n",sizeof(&a[0]+1));
printf("%d\n",sizeof(*(&a[0]+1)));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(a[3]));
return 0;
}
sizeof 計(jì)算對(duì)象所占內(nèi)存的大小,單位是字節(jié)。
? printf("%d\n",sizeof(a));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?48? ? ? ? ? ? ? ? ? ? ? ? ?
? printf("%d\n",sizeof(a[0][0]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4?
? printf("%d\n",sizeof(a[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 16? 第一行的大小
? printf("%d\n",sizeof(a[0]+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4/8? 第一行首元素的地址+1是第一行第二個(gè)元素的地址
? printf("%d\n",sizeof(*(a[0]+1)));? ? ? ? ? ? ? ? ? ? ? ? ? ??4? ? ?第一行第二個(gè)元素
? printf("%d\n",sizeof(a+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4/8? ?a表示二維數(shù)組第一行的地址,a+1是第二行的地址
? printf("%d\n",sizeof(*(a+1)));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 16? 對(duì)第二行的地址解引用
? printf("%d\n",sizeof(&a[0]+1));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4/8 第二行的地址
? printf("%d\n",sizeof(*(&a[0]+1)));? ? ? ? ? ? ? ? ? ? ? ? ? ?16? 第二行的大小printf("%d\n",sizeof(*a));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 16? 第一行的大小
? printf("%d\n",sizeof(a[3]));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 16? 第四行的大小,此時(shí)雖然越界,但沒有訪問,所以可以正常運(yùn)行。
例6、
int main()
{
? ?int a[5] = { 1, 2, 3, 4, 5 };
? ?int*ptr= (int*)(&a+1);
? ?printf( "%d,%d", *(a+1), *(ptr-1)); ? ?
return0;
}
結(jié)果是2、5
例7、
struct Test
{
int Num;
char*pcName;
short sDate;
char cha[2];
short sBa[4];
}*p;
int main()
{
p=0x100000;
printf("%p\n", p+0x1);
printf("%p\n", (unsignedlong)p+0x1);
printf("%p\n", (unsignedint*)p+0x1);
return0;
}
答案是:?
00100014? ? ? ? ? 當(dāng)結(jié)構(gòu)體指針+1時(shí),加的是結(jié)構(gòu)體的大小,所以加20,又因?yàn)槭?6進(jìn)制表示
00100001? ? ? ? ? 指針變量p被轉(zhuǎn)換成無(wú)符號(hào)長(zhǎng)整型變量,所以+1是就是數(shù)值直接+1
00100004? ? ? ? ? 指針變量p被轉(zhuǎn)換成整形指針,+1 就是加一個(gè)整形的大小
例8、
int main()
{
? ?int a[4] = { 1, 2, 3, 4 };
? ?int* ptr1= (int*)(&a+1);
? ?int* ptr2= (int*)((int)a+1);
? ?printf( "%x,%x", ptr1[-1], *ptr2);
? ?return 0;
}
答案? ? 0x4? ?0x20000000
例9、
#includeint main()
{
? ?int a[3][2] = { (0, 1), (2, 3), (4, 5) };
? ?int* p;
? ?p = a[0];
? ?printf( "%d", p[0]);
return 0;
}
答案是:1;因?yàn)榛ɡㄌ?hào)中的小括號(hào)相當(dāng)于逗號(hào)表達(dá)式,所以數(shù)組 a 的初始化相當(dāng)于,a[3][2]={1,3,5};而 a[0]是第一行的地址,打印時(shí),打印第一行的首元素。
例10、
int main()
{
? ?int a[5][5];
? ?int(*p)[4];
? ?p=a;
? ?printf( "%p,%d\n", &p[4][2] -&a[4][2], &p[4][2] -&a[4][2]);
? ?return0;
}
答案: FFFFFFFC,? -4
p[4][2] 等價(jià)于 *(*(p+4)+2)? ; p 最初是數(shù)組名,也就是數(shù)組首元素的地址,p是一個(gè)數(shù)組指針,p+1相當(dāng)于,向后跳過四個(gè)元素,而指針-指針得到的是指針之間的元素個(gè)數(shù)。自行畫圖
例11、
int main()
{
? ?int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
? ?int*ptr1= (int*)(&aa+1);
? ?int*ptr2= (int*)(*(aa+1));
? ?printf( "%d,%d", *(ptr1-1), *(ptr2-1));
? ?return 0;
}
答案:10? ?5
例12、
int main()
{
char*a[] = {"work","at","alibaba"};
char**pa=a;
pa++;
printf("%s\n", *pa);
return 0;
}
答案:at
因?yàn)?char *a[] 中存的是這三個(gè)字符串的首字符的地址;
char** pa 中存的是 a 的地址;
pa 最初是指向 a 數(shù)組的第一個(gè)元素,即? "work" 中w的地址;
pa++ 后指向了 a 數(shù)組中第二個(gè)元素,即 "at" 中 a 的地址;
又因?yàn)閿?shù)組中每個(gè)字符串最后都有一個(gè)? \n? 所以最后打印? at。?
例13、
int main()
{
char*c[] = {"ENTER","NEW","POINT","FIRST"};
char**cp[] = {c+3,c+2,c+1,c};
char***cpp=cp;
printf("%s\n", **++cpp);
printf("%s\n", *--*++cpp+3);
printf("%s\n", *cpp[-2]+3);
printf("%s\n", cpp[-1][-1]+1);
return0 ;
}
答案: POINT????????ER? ? ? ? ST? ? ? ? EW
*cpp[-2]? 等價(jià)于 **(cpp-2)+3;
cpp[-1][-1]? 等價(jià)于? *(*(cpp-1)-1)+1`;
C8 39
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
標(biāo)題名稱:【C語(yǔ)言進(jìn)階】二、指針-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://jinyejixie.com/article0/dicjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站營(yíng)銷、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容