c语言 开辟复数指针数组,指针和数组 - llwwzz的个人空间 - OSCHINA - 中文开源技术交流社区...
指針的幾個要點:
一
指針的定義,賦值 要區分:
int a;
int *p = &a;
這是定義的時候初始化,即賦值
=======================
int a;
int *p;
p = &a;
定義,初始化分開, ?就這里我迷惑了好久
==========================
多個(修飾符)修飾變量,看變量名先和誰結合(先看后綴)(ps:符號和變量之間的空格不要計算,和距離無關 int*和int *.......
int * p [5] ? ?先和[ ]結合,所以p是一個數組,它的每個元素都是一個指針,
int(*p)[5] ? ? 是一個指針,這個指針指向一個有5個int元素的數組,p是數組首元素的地址
int a[3][5]={{1 2 3 4 5}{ 6 7 8 9 10}{ 11 12 13 14 15}} ? ? ? ? ? ? (簡寫的)
&a ? ? ? ? ? ? a ? ? ? ? ? ? ? a[0]
這4個都是指針,他們的地址都相同,但是他們指向的對象的空間大小不同
&a ? 相當于 int *p = &a ? ? 指向整個數組 ? ? ? ? 60字節
a ? ? 相當于 ? int (*p)[5] ? ? 指向a的首元素 即 {1 2 3 4 5 } ? ? ? ? ?20字節
a[0] ? ?相當于 int (*p) ? ? ? ?指向a[0]的首元素 即 ? {1}
==================================================================
ubuntu 14.04 vim
隨意輸入100個以內字符,計算各種字符有幾個!(有一個語句我很自豪) @. @
#include
using?namespace?std;
void?fun(char?*tt,int?pp[])
{
while(*(tt)?!=?'\0')
{
if(*(tt)>='a'?&&?*(tt)<='z')
++pp[((int)*(tt))-97];
tt++;
}
}
int?main()
{
int?pp[26]={0};
char?tt[100];
int?i=0;
while(cin>>tt[i++])
;
fun(tt,pp);
for(int?j?=?0;j?!=?26;++j)
cout?<
return?0;
}
======================================================================================
邊輸入數據邊分配空間的動態數組(使用3個指針相互賦值)
#include
using?namespace?std;
int?main()
{
int?size=2,k=1;
int?*a=new?int?[0];
int?*q;
int?*p;
p=a;
int?i=0;
while(cin>>*(a+i++))
{
if(i?==?k*size?&&?k%2?!=?0)
{
q?=?new?int[++k*size];
for(int?j?=?0;j?!=?(k-1)*size;++j)
*(q+j)?=?*(p+j);
delete[]?p;
a?=?q;
}
else?if(i?==?k*size?&&?k%2?==?0)
{
p?=?new?int[++k*size];
for(int?j?=?0;j?!=?(k-1)*size;++j)
*(p+j)?=?*(q+j);
delete[]?q;
a?=?p;
}
}
cout<
for(int?j?=?0;j?!=?i-1;++j)
cout<
return?0;
}
現在發現寫上翻譯是多么重要,,,,
總結
以上是生活随笔為你收集整理的c语言 开辟复数指针数组,指针和数组 - llwwzz的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何卸载apache服务器
- 下一篇: OpenResty--------企业级