變數 字串

2021-08-03 21:19:15 字數 1985 閱讀 2029

變數

全域性變數和靜態變數的異同

相同點:都保留在靜態儲存區,生命期與程式生命期相同。

不同點:全域性變數具有全域性作用域,靜態變數具有穩健作用域。

把區域性變數改為靜態變數後是改變了它的儲存方式,即改變了它的生存期;把全域性變數改變為靜態變數後是改變了它的作用域,限制了它的適用範圍。

全域性變數和區域性變數的區別

1)全域性變數的作用域為這個程式塊,而區域性變數的作用域為當前函式;

2)記憶體儲存方式不同,全域性變數分配在全域性資料區,後者分配在棧區;

3)生命週期不同。全域性變數隨主程式建立而建立,隨主程式銷毀而銷毀,區域性變數在區域性函式內部,甚至區域性迴圈體等內部存在,退出就不存在了;

4)使用方式不同。通過宣告後全域性變數程式的各個部分都可以用到,區域性變數只能在區域性使用。

字串

自行實現strcpy()函式

char * strcpy(char *strdest,const char *strsrc)

char *address = strdest;

while((*strdest++ = *strsrc++) != 『\0』);

return address;

}

自行實現stoi()和itoa()函式

int myatoi(char *str)

while(*str == 『』)

while((*str == (char)0xa1) && (*(str+1) == (char)0xa1))

int nsign = (*str == 『-』) ? -1:1;

if(*str == 『+』|| *str == 『-』)

int nresult = 0;

while(*str >= 『0』 && *str <= 『9』)

return nresult * nsign;}

char* myitoa(int num)

dowhile(num > 0);

if(sign < 0)

temp[i] = 『\0』;

i--;

while(i >= 0)

str[j] = 『\0』;

return str;

}

自行實現memcpy()函式

與strcpy相比,memcpy遇到『\0』不結束,而是一定會複製完n個位元組。而且目標資料dest本身已有資料,執行memcpy()後,將覆蓋原有資料(最多覆蓋n)。如果追加資料,則每次執行memcpy後,要將目標陣列位址增加到要追加資料的位址。

void* mymemcpy(void *dest,const void *src,size_t count)

}else

}return dest;

}

字串變數

string是乙個類,string的變數是物件的管理者而非所有者,就像陣列變數是陣列的管理者而非所有者一樣。new 建立 string s new string a string 建立了乙個string的物件,用 a string 初始化這個物件,建立管理這個物件的變數s,讓s管理這個物件 初始化字...

字串變數

末尾有 0 結尾符表示字串的結束。1.若字串相同則二者事實上是乙個實體 2.字串常量的生命週期跟應用程式的生命週期是一樣的。子函式退出後可以使用字串常量。3.常量就const char這種 他的生存週期和普通變數無區別 但字串常量 abcd 這種生存期是整個程式 那麼可以很自然想到const cha...

字串,字串字面量和字串變數

1.1.1.0 字串的定義 字串是用雙引號括起來的子覅序列,並以乙個空字元來標識字串的結束。1.1.1.1字串常量 1 字串常量的性質 字串字面量是不可改變的量,它作為字元陣列儲存在記憶體空間中。abcdef 如果一行寫不開可以把第一行以 結尾,第二行頂格寫完。abc def 或者將他們分別用雙引號...